我目前正在尝试做一些简单的事情:
CMenu menu;
menu.LoadMenu(IDR_MENU_IMAGE);
CPoint pt;
GetCursorPos(&pt);
menu.TrackPopupMenu(TPM_RIGHTBUTTON, pt.x, pt.y, this);
当我右键单击时,我得到下面的图像。但是,菜单已加载;当我将光标向下移动菜单时,您可以看到它很好地填充了子菜单。它对我这样动态加载的任何菜单执行此操作。我试图创建一个指针 (CMenu*),但仍然遇到这个问题。
点无关紧要(我输入任意点)。
有问题的“this”是派生的 CView* 类。我正在单击一个 HWND 对象,但我也尝试获取我正在单击的这个特定对象的 CWnd::FromHandle() 并让该对象处理它,但我仍然遇到同样的问题。
我的顶级菜单结构和所有其他菜单都有效 - 仅在这种特殊情况下。
我真的不想派生一个 C++ CMenu 类,只是为了在原始菜单应该实际工作时覆盖 MeasureItem 函数,并且在其他版本中可以正常工作。
帮助?