1、CWnd中的ToolTip会在接受定时器消息的时候判断当前的光标位置,这段代码不知如何写的,估计直接调用了系统API获得光标位置
2、所以尝试使用PostMessage(WM_MOUSEMOVE)去触发ToolTip是可能的,但是无法显示,因为显示的代码在ToolTip的定时器中延时显示。
3、所以必须设置光标位置,但是ToolTip发现任何键盘消息时都会取消显示,所以在控件获得焦点时设置光标位置是不行的,因为后面会有键盘抬起消息,这样就立刻取消了ToolTip的显示。
4、所以必须在定时器中设置光标位置
注意控件获得焦点时ON_EN_SETFOCUS
组合框获得焦点时ON_CBN_SETFOCUS
其实最好还是去网上下载别人写好的ToolTip类代码,那样有更多功能,比如多行显示、字体、颜色等等
本文探讨了在CWnd中实现ToolTip的技巧,特别是在控件获得焦点时如何正确设置光标位置以确保ToolTip能正常显示。文中提供了具体的代码示例,并建议采用现成的ToolTip类库以获得更多功能。
1789

被折叠的 条评论
为什么被折叠?



