定义菜单IDR_MAINFRAME,两个子菜单IDM_ACTION,IDM_MENU
IDR_MAINMENU RCDATA
BEGIN
IDR_POPUP,
2,
I_IMAGENONE, IDM_ACTION, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, IDS_ACTION, 0, NOMENU,
I_IMAGENONE, IDM_MENU, TBSTATE_ENABLED, TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDS_MENU, 0, 0,
END
1.显示/不显示该菜单项
以下使得IDM_ACTION不显示
TBBUTTONINFO tbbi;
tbbi.cbSize = sizeof(tbbi);
tbbi.dwMask = TBIF_STATE;
tbbi.fsState = TBSTATE_INDETERMINATE;
SendMessage (SHFindMenuBar(hDlg), TB_SETBUTTONINFO, IDM_ACTION, (LPARAM)&tbbi);
如果要显亮该菜单项改变 tbbi.fsState = TBSTATE_ENABLED 即可
2.改变菜单项文本
以下使得菜单名为Tools
TBBUTTONINFO tbbi;
tbbi.cbSize = sizeof(tbbi);
tbbi.dwMask = TBIF_TEXT;
tbbi.pszText = _T("Tools");
SendMessage (SHFindMenuBar(hDlg), TB_SETBUTTONINFO, IDM_MENU, (LPARAM)&tbbi);
同样你也可以从菜单获得文本
TBBUTTONINFO tbbi;
TCHAR szBuf[255];
tbbi.cbSize = sizeof(tbbi);
tbbi.dwMask = TBIF_TEXT;
tbbi.pszText = szBuf;
tbbi.cchText = sizeof(szBuf)/sizeof(szBuf[0]);
SendMessage (SHFindMenuBar(hDlg), TB_GETBUTTONINFO, IDM_MENU, (LPARAM)&tbbi);
3.改变菜单ID
改变菜单ID_ACTION为0x1234
TBBUTTONINFO tbbi;
tbbi.cbSize = sizeof(tbbi);
tbbi.dwMask = TBIF_COMMAND;
tbbi.idCommand = 0x1234;
SendMessage (SHFindMenuBar(hDlg), TB_SETBUTTONINFO, IDM_ACTION, (LPARAM)&tbbi);
4。动态添加/移除菜单项
You may also want to change popup menu associated with menu bar item (add/remove items, enable/disable them etc.).
HMENU of this popup menu is obtained through TBBUTTONINFO::lParam member variable:
TBBUTTONINFO tbbi;
tbbi.cbSize = sizeof(tbbi);
tbbi.dwMask = TBIF_LPARAM;
SendMessage (SHFindMenuBar(hDlg), TB_GETBUTTONINFO, IDM_MENU, (LPARAM)&tbbi);
HMENU hPopupMenu = (HMENU)tbbi.lParam;
Note that you can not change popup menu handle associated with menu bar item or remove it completely by setting item style to TBSTYLE_BUTTON.