使用了SetCapture函数,控件的ToolTipText属性不起作用了
编号:QA001959
建立日期: 1999年11月4日 最后修改日期:1999年11月4日
所属类别:
张伟雄:
VB 6
Win98
我用VB6写了个按钮控件,并且我在Usercontrol_MouseMove及Usercontrol_MouseDown、Usercontrol_MouseUp事件中使用语句。
SetCapture Usercontrol.hWnd '截获Mouse事件
这样我就可以为我的控件添加MouseIn 及MouseOut事件了,效果很好。但出现一个问题,就是控件的ToolTipText属性不起作用了,也就说不能显示ToolTipText。请问这个问题该怎样解决,请指教,谢谢!
回答:
系统只允许一个程序使用SetCapture,控件在显示ToolTip时也使用SetCapture。所以如果你调用了SetCapture而没有ReleaseCapture,则控件无法成功调用SetCapture,自然无法显示ToolTip。你有几个办法:
1、自己编写ToolTip显示代码,你可以参考QA000029 "如何实现那种流行的平面按钮"中提到的Soft Button的例子;
2、使用SetWindowsHook,比较麻烦;
3、使用Timer来判断鼠标的位置,参考QA001806 "如何使控件的内容根据鼠标的位置发生变化"。
此问题由李海回答。
| |
|
|
| |
|
|