在 MFC 中,鼠标悬停时会选择上下文菜单项
我有一个带有上下文菜单的应用程序。我使用 OnMenuSelect 方法,但当鼠标悬停在菜单项上时(而不是单击它时)会调用它。有没有办法解决这个问题呢?
I have an application with a context menu. I use the OnMenuSelect
method but it gets invoked when mouse is over the menu item, not when I click on it. Is there a method to solve this problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,这是设计使然。
OnMenuSelect
方法 对应于WM_MENUSELECT
消息,每当鼠标悬停在菜单项上时就会发送该消息。要处理菜单项的单击事件,您需要处理
WM_COMMAND
消息,即在 MFC 术语中,这意味着重写
OnCommand
方法:Yes, this is by design. The
OnMenuSelect
method corresponds to theWM_MENUSELECT
message, which is sent whenever the mouse is hovering over a menu item.To handle a click event for a menu item, you need to process the
WM_COMMAND
message, which isIn MFC terms, this means overriding the
OnCommand
method: