我正在尝试以编程方式创建菜单,但是下面的代码无法在第二个菜单项(文件的邻居)(在第一个File-> new等中,一切都很好)中创建弹出菜单。
当我单击“查看”时,它不执行任何操作,而不是显示SelectAll命令。
HMENU menu = CreateMenu();
HMENU subMenu1 = CreatePopupMenu();
AppendMenu(subMenu1,MF_STRING,IDC_MENU_NEW,_T("New"));
AppendMenu(subMenu1,MF_STRING,IDC_MENU_EXIT,_T("Exit"));
AppendMenu(menu,MF_POPUP,(UINT_PTR)subMenu1,_T("File"));
SetMenu(dlg,menu);
HMENU menu2 = CreateMenu();
HMENU subMenu2 = CreatePopupMenu();
AppendMenu(menu,MF_INSERT,(UINT_PTR)menu2,_T("View"));
AppendMenu(subMenu2,MF_STRING,IDC_MENU_EXIT2,_T("Select All"));
AppendMenu(menu2,MF_POPUP,(UINT_PTR)subMenu2,_T("View"));
我究竟做错了什么?您能指出我在某处找到信息吗?
最佳答案
我相信您的错误是在这行代码上
AppendMenu(menu,MF_INSERT,(UINT_PTR)menu2,_T("View"));
MF_INSERT不是AppendMenu的有效标志,并且实际上映射到MF_ENABLED。在这种情况下,我相信您想使用MF_POPUP插入“查看”子菜单。
这就是MSDN描述MF_POPUP的方式:
指定菜单项打开一个下拉菜单或子菜单。的
uIDNewItem参数指定下拉菜单的句柄或
子菜单。此标志用于将菜单名称添加到菜单栏或菜单
用于打开下拉菜单,子菜单或快捷方式子菜单的项目
菜单。
关于c++ - 无法创建弹出菜单,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12500093/