我使用CreatePopupMenu()创建了一个上下文菜单。然后我使用InsertMenu(..)添加了菜单项,并使用TrackPopupMenu(..)显示它。
几个问题:
当我点击上下文菜单中的内容时,窗口消息会在哪里发送? MSDN文档在解释如何创建上下文菜单方面做得很好,但是一旦掌握了它,我就不确定如何处理它。
文档指定我需要在TrackPopupMenu之后调用DestroyMenu(HMENU hMenu)。我已将其写入我的应用程序,但我不太明白这里发生了什么。如果我刚刚创建了一个菜单,DestroyMenu()会不会销毁它?换句话说,什么是毁灭?
答案 0 :(得分:2)
当您单击弹出菜单中的某个项目时,操作系统将向“拥有”弹出菜单的窗口发送WM_COMMAND
消息,更具体地说,发送到您在通话中指定的窗口到TrackPopupMenu
(hWnd
参数)。
创建菜单时,操作系统将保留内存以存储有关菜单的信息。当您不再需要菜单时(当您知道再也不会显示它时),您可以通过拨打DestroyMenu
来释放此内存。