【问题标题】:Windows programming win32windows编程win32
【发布时间】:2009-12-18 15:53:08
【问题描述】:

我正在尝试在鼠标左键单击时获取菜单/子菜单名称。为此,我需要在单击该特定菜单/子菜单时收到一些通知。看看是否有人有这样做的想法?

【问题讨论】:

  • 你能详细说明一下吗?例如,你现在尝试的代码,关于你的问题的更详细的解释。
  • 我试图在鼠标左键单击时获取菜单/子菜单名称。为此,当我单击该特定菜单/子菜单时,我需要得到一些通知。如果我通过菜单,GetMenuItemInfo 会给出菜单/子菜单名称索引到那个。你能帮忙吗?

标签: winapi


【解决方案1】:

您应该收听WM_COMMAND 通知,而不是响应WM_LBUTTONDOWN 的菜单。 Windows 负责处理鼠标移动和菜单内点击的所有细节。

【讨论】:

  • 您应该使用 WM_CONTEXTMENU 消息,而不是 WM_COMMAND 或 WM_LBUTTONDOWN。
  • WM_CONTEXTMENU 通知是针对右键单击(或 Shift+F10 或上下文菜单键),而不是针对原始的左键单击请求的问题。
  • Greg,谢谢回复。当我点击菜单/子菜单时,WM_COMMAND 没有给出任何通知。请帮忙。
  • 除非您发布一些源代码,否则我无法提供更多建议。
【解决方案2】:

要使用菜单/子菜单,有一个完全不同的 WM 例如,在 MSDN 中查找此 WM_MENUSELECT

【讨论】:

  • Thnx king.But WM_MENUSELECT 在单击菜单/子菜单时不起作用。
  • 对不起,伙计,但是如果来自msdn.microsoft.com/en-us/library/ms646352(VS.85).aspx 的““WM_MENUSELECT 消息在用户选择菜单项时发送到菜单的所有者窗口。”对您不起作用(即使认为它有效对于其他人)我不能帮助你更多:))
猜你喜欢
  • 1970-01-01
  • 2011-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多