有没有简单的方法来确定弹出菜单何时被解除?

时间:2010-03-17 09:15:07

标签: c++ windows winapi popupmenu

我正在使用TrackPopupMenu显示一个弹出菜单,想知道何时通过点击它来解除它。我查看了所有菜单功能,但在这方面没有找到任何有用的东西。 Spy ++告诉我在这种情况下不会发送任何窗口消息。

那么,有没有安装鼠标钩的简单方法呢?谢谢!

1 个答案:

答案 0 :(得分:3)

<强> [编辑]
这个更好。 如果在uFlags参数中指定TPM_RETURNCMD,则返回值是用户选择的项的菜单项标识符。如果用户取消菜单而未进行选择,或者发生错误,则返回值为零。

当:: TrackPopupMenu()返回时,菜单循环结束:) 如果选择了菜单项,则将HWND作为第6个参数传递的窗口将收到带有所选项目ID的WM_COMMAND消息。您可能:: PeekMessage()之后:: TrackPopupMenu()返回以查看WM_COMMAND是否在队列中。

如果您希望在:: TrackPopupMenu()中收到通知,则可以处理WM_EXITMENULOOP。