我试图加载一个弹出的“右键单击”菜单,并使用资源文件来定义菜单项。图片显示了当我右键单击时发生的情况,它显示了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

任何关于我什么东西的想法都错了吗?

谢谢。

编辑:我刚刚测试,并单击“没有显示文本”区域中,它发送正确的消息。是什么导致它不显示文本?

最佳答案

找到了解决方案:

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不会显示,只有其菜单项会显示。

09-17 19:29