【发布时间】:2017-06-03 12:48:14
【问题描述】:
我正在寻找在我的 WinAPI 程序中为单个菜单项显示工具提示的解决方案。
ID_MAIN_MENU MENU
BEGIN
...
END
MENUITEM "?", ID_RIGHT_BUTTON, HELP
END
我可以使用TOOLINFO 结构和TTM_ADDTOOL 消息来add tooltip for a control,但这似乎不适用于HMENU 句柄。
我发现 some C++ libraries 向菜单项添加工具提示,但我使用的是 C。
此外,这里无法使用WM_MENUSELECT 消息,该消息仅在单击菜单时发送,而不是悬停在上方。
欢迎提出任何建议。
【问题讨论】:
-
对此不确定,但您是否尝试过任何 WM_MOUSEHOVER、WM_MOUSEMOVE 或 WM_NCMOUSEMOVE 事件,它们是否有效?
-
@Laszlo:
WM_NCMOUSEMOVE是唯一有用的:wParam总是 5 遍及整个菜单,但lParamx 和 y 鼠标坐标...我可以用它来识别按钮GetMenuItemRect()! -
WM_MENUSELECT每当菜单项被选择时发送,无论是通过滚动/悬停在菜单项上,还是使用键盘。这是处理以显示工具提示的正确消息。它工作正常。如果您在使用时遇到问题,请出示您的实际代码。 -
@Salvador:酷。感谢您的信息。
-
@RemyLebeau:是的,没错,但我认为 Salvador 希望始终显示一个工具提示,只要光标悬停在它上面,而不仅仅是在它被选中时。鼠标移动时是否选择菜单取决于用户设置。