嘿嘿。最后,经过大量调整后,我得到了一个加载了.rc的上下文菜单,可以让我的托盘通知图标正常工作。(基于对话框的WindowsAPI应用程序,无MFC)。但是,在各种示例和使用演示中,我总是看到HMENU正在创建(CreateMenu()、LoadMenu())和销毁(DestroyMenu())在调用TrackPopupMenu()之前/之后。通知图标的弹出菜单在MSDN上根本没有记录(至少我没有找到超过一个关于它们的段落)。直觉上,我将LoadMenu()放在WM_INITDIALOG的消息处理中并存储HMENU,因此我不必每次创建和销毁菜单。正如我所说,我还没有找到类似的例子,我
当用户按下F1键时,我正在尝试为我的对话窗口覆盖WM_HELP消息。该窗口有几个按钮,可通过TrackPopupMenu显示上下文菜单,以及主菜单(在顶部)。因此,此窗口中的菜单不止一个。我可以在处理WM_HELP时捕获菜单消息,但我需要知道哪个上下文菜单发送了这条消息:BOOLCMyDialog::OnHelpInfo(HELPINFO*pHelpInfo){if(pHelpInfo->iContextType==HELPINFO_MENUITEM){HMENUhMenu=(HMENU)pHelpInfo->hItemHandle;//HowtogetmenuIDfromHMENU?
我想用原型(prototype)实现一个功能/*Locatesthemenuitemoftheapplicationwhichcausedthegivenmenu'mnu'to*showup.*@returntrueifthegivenmenu'mnu'wasopenedbyanothermenuitem,false*ifnot.*/boolgetParentMenuItem(HMENUmnu,HMENU*parentMenu,int*parentMenuIdx);给定一个HMENU句柄,我希望能够找出应用程序中的哪个菜单项(如果有的话)打开了它。这基本上与GetSubMenu相反功能