以下内容为程序代码: CMenu popMenu; popMenu.CreatePopupMenu(); // append menu item popMenu.AppendMenu(MF_BYCOMMAND, ID_1, _T("Pop-up Item 1")); // ID_1是菜单ID值,这里是我假定的值,你可以自己设置,一下ID都一样 popMenu.AppendMenu(MF_BYCOMMAND, ID_2, _T("Pop-up Item 2")); popMenu.AppendMenu(MF_BYCOMMAND, ID_3, _T("Pop-up Item 3")); // append other menu items. // .............. MENUITEMINFO miif; // for pop-up menu item info ZeroMemory(miif, sizeof(miif)); // set miif memory to zero miif.cbSize = sizeof(MENUITEMINFO); // necessary miif.fMask = MIIM_TYPE | MIIM_STATE | MIIM_STRING | MIIM_SUBITEM; miif.fType = MFT_STRING; // Displays the menu item using a text string miif.fState = MFS_ENABLED; // default miif.dwTypeData = _T("Pop-up menu item"); // content of Pop-up menu item miif.hSubMenu = HMENU(popMenu); // get handle of pop-up menu if (miif.hSubMenu != NULL) { // presume pMenu that it is a point to menu which you want to insert // pop-up menu item in pMenu->InsertMenuItem(ID_POPUP_MENU, &miif, FALSE); // ID_POPUP_MENU也是我假定的ID值 } |
MENUITEMINFO包含了菜单项信息,此结构功能很强,可以设置很多复杂的菜单效果,详见MSDN。