我正在尝试加载弹出“右键单击”菜单,并使用资源文件来定义菜单项。图为右键单击时发生的情况,显示2个项目的空间,这是正确的,但没有显示任何文字。
在.cpp:
中POINT pt;
pt.x = LOWORD (lParam);
pt.y = HIWORD (lParam);
ClientToScreen (hwnd, &pt);
HMENU hMenu = LoadMenu(NULL, MAKEINTRESOURCE(IDR_POPUPMENU));
TrackPopupMenu (hMenu, TPM_RIGHTBUTTON, pt.x, pt.y, 0, hwnd, NULL);
和资源:
IDR_POPUPMENU MENU DISCARDABLE
BEGIN
MENUITEM "test", IDM_TEST
MENUITEM "Close", IDM_CLOSE
END
关于我的错误的任何想法?
感谢。
编辑:我刚刚测试过,点击“无文本显示”区域,它会发送正确的消息。什么可能导致它不显示文本?
答案 0 :(得分:9)
找到解决方案:
HMENU hMenu = LoadMenu(NULL, MAKEINTRESOURCE(IDR_POPUPMENU));
hMenu = GetSubMenu(hMenu, 0);
和资源:
IDR_POPUPMENU MENU DISCARDABLE
BEGIN
POPUP "TEST"
BEGIN
MENUITEM "Test", IDM_TEST
MENUITEM "Close", IDM_CLOSE
END
END
只需使用开始子菜单启动资源输入,TEST不显示,只显示其菜单项。
答案 1 :(得分:5)
您的菜单资源不正确。它必须是popupmenu
。
例如:
IDR_MENU_TRAY MENU
BEGIN
POPUP "ContextMenu"
BEGIN
MENUITEM "ShowWindow", ID_POPUP_SHOWWINDOW
MENUITEM "Exit", ID_POPUP_EXIT
END
END
TrackPopupMenu
第一个参数是与现有菜单项关联的子菜单的句柄。
您可以在此处查看示例:http://msdn.microsoft.com/EN-US/library/ms647558(v=VS.85,d=hv.2).aspx