我正在使用TrackPopupMenu显示一个popup式菜单,并想知道什么时候通过点击外部来解除它。 我已经浏览了所有的菜单function,但在这方面没有find任何有用的东西。 Spy ++告诉我,在这种情况下不会发送窗口消息。
那么,有没有简单的方法来做到这一点,而不需要安装鼠标钩子? 谢谢!
[编辑]
这个更好。 如果在uFlags参数中指定TPM_RETURNCMD,则返回值是用户所选项目的菜单项标识符。 如果用户取消菜单而不进行选择,或者发生错误,则返回值为零。
当:: TrackPopupMenu()返回时,菜单循环结束:)如果选择了一个菜单项,HWND作为第6个参数传递的窗口将收到一个WM_COMMAND消息,其中包含所选项目的ID。 您可以:: :: PeekMessage():: TrackPopupMenu()之后返回以查看WM_COMMAND是否在队列中。
如果你想在:: TrackPopupMenu()中得到通知,你可以处理WM_EXITMENULOOP。