0

我正在尝试以编程方式创建菜单,但下面的代码无法在第二个菜单项(文件的邻居)中创建弹出菜单(在第一个文件-> 新建等中,一切都很好)。当我单击查看时,它什么都不做,而不是显示 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"));

我究竟做错了什么?你能指点我到某个地方找到信息吗?

4

1 回答 1

2

我相信你的错误是在这行代码上

AppendMenu(menu,MF_INSERT,(UINT_PTR)menu2,_T("View"));

MF_INSERT 不是 AppendMenu 的有效标志,实际上映射到 MF_ENABLED。在这种情况下,我相信您想使用 MF_POPUP 插入“查看”子菜单。

这是 MSDN 描述 MF_POPUP 的方式:

指定菜单项打开一个下拉菜单或子菜单。uIDNewItem 参数指定下拉菜单或子菜单的句柄。此标志用于将菜单名称添加到菜单栏,或打开下拉菜单、子菜单或快捷菜单的子菜单的菜单项。

于 2012-09-19T18:15:34.353 回答