处理上下文菜单选择

时间:2011-06-24 20:18:39

标签: winapi

我使用CreatePopupMenu()创建了一个上下文菜单。然后我使用InsertMenu(..)添加了菜单项,并使用TrackPopupMenu(..)显示它。

几个问题:

  1. 当我点击上下文菜单中的内容时,窗口消息会在哪里发送? MSDN文档在解释如何创建上下文菜单方面做得很好,但是一旦掌握了它,我就不确定如何处理它。

  2. 文档指定我需要在TrackPopupMenu之后调用DestroyMenu(HMENU hMenu)。我已将其写入我的应用程序,但我不太明白这里发生了什么。如果我刚刚创建了一个菜单,DestroyMenu()会不会销毁它?换句话说,什么是毁灭?

1 个答案:

答案 0 :(得分:2)

当您单击弹出菜单中的某个项目时,操作系统将向“拥有”弹出菜单的窗口发送WM_COMMAND消息,更具体地说,发送到您在通话中指定的窗口到TrackPopupMenuhWnd参数)。

创建菜单时,操作系统将保留内存以存储有关菜单的信息。当您不再需要菜单时(当您知道再也不会显示它时),您可以通过拨打DestroyMenu来释放此内存。