m_wndToolBar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS)
然后才修改某个具体项的风格,改为下拉式
DWORD dwStyle=m_wndToolBar.GetButtonStyle(m_wndToolBar.CommandToIndex(ID_FILE_OPEN))
dwStyle|=TBSTYLE_DROPDOWN
m_wndToolBar.SetButtonStyle(m_wndToolBar.CommandToIndex(ID_FILE_OPEN),dwStyle)
还需要处理下拉消息
消息定义 afx_msg void OnToolbarDropdown(NMHDR*pnmh,LRESULT*plRes)
消息路由 ON_NOTIFY(TBN_DROPDOWN,AFX_IDW_TOOLBAR,OnToolbarDropdown)
void CMainFrame::OnToolbarDropdown(NMHDR*pnmh,LRESULT*plr)
{
//注意,这里VC6和VS2010略有不同
NMTOOLBAR* pnmbar = (NMTOOLBAR*)pnmh
CWnd*pWnd
switch(pnmbar->iItem)
{
case ID_FILE_OPEN:
pWnd=&m_wndToolBar
break
default:
return
}
CMenu menu
menu.LoadMenu(IDR_MENU1)
CMenu*pPopup =menu.GetSubMenu(0)
ASSERT(pPopup)
CRect rc
pWnd->SendMessage(TB_GETRECT,pnmbar->iItem,(LPARAM)&rc)
pWnd->ClientToScreen(&rc)
pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_VERTICAL,rc.left
,rc.bottom,this,&rc)
}
放两个panel 在窗体上,都设置属性Dock 为 top , menu 放在上面panel里,toolbar放在下面的panelAndroid Menu的文字有两种设置方式:
在 menu.xml中设置。
在java代码onCreateOptionsMenu中设置。
以下为示例代码:
在menu.xml中指定title即可
<item android:id="@+id/menu"
android:title="文字"/>
重载onCreateOptionsMenu(Menu menu)方法,并调用API。
menu.add((int groupId, int itemId, int order, charsequence title) .setIcon(drawable ID)
add()方法的四个参数,依次是:
1、组别,如果不分组的话就写Menu.NONE。
2、Id,这个很重要,Android根据这个Id来确定不同的菜单 。
3、顺序,哪个菜单项在前面由这个参数的大小决定 。
4、文本,菜单项的显示文本。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)