判断鼠标移出窗体-t小雨
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


判断鼠标移出窗体

发表时间:2009/12/5 8:58:32 评论(0) 浏览(7957)  评论 | 加入收藏 | 复制
   
摘 要:判断鼠标移出窗体
正 文:
用标签或图像作为按钮时,可在鼠标移动时改变标签或图像的外观。
通常在鼠标移到标签或图像上面时改变改变标签或图像的外观,在鼠标移到窗体上时恢复外观。
但经常遇到,标签或图像在窗体边缘时,就不会发生窗体的鼠标移动事件,标签或图像不能恢复外观。
解决办法是用两个API函数 SetCapture 和 ReleaseCapture ,声明和说明如下:
  1. Private Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As Long
  2. '将鼠标捕获设置到指定的窗口。在鼠标按钮按下的时候,这个窗口会为当前应用程序或整个系统接收所有鼠标输入
  3. '返回值'Long,之前拥有鼠标捕获的窗口的句柄'参数  'hwnd  Long,要接收所有鼠标输入的窗口的句柄

  4. Private Declare Function ReleaseCapture Lib "user32" () As Long
  5. '为当前的应用程序释放鼠标捕获 '返回值'Long,TRUE(非零)成功,零失败

  6. '使用举例:

  7. Private Sub Label0_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

  8. ' 鼠标移动到标签时设置标签背景色为红色
  9.     Me.Label0.BackColor = 255

  10. ' 将鼠标捕获设置到当前窗口,这样即使鼠标移出窗体范围,窗体仍可捕获鼠标
  11.     SetCapture Me.hwnd

  12. End Sub

  13. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

  14. ' 鼠标移动到窗体时恢复标签背景色为白色
  15.     Me.Label0.BackColor = 16777215
  16.    
  17. ' 恢复标签的背景色后应释放鼠标捕获
  18.     ReleaseCapture
  19.    
  20. End Sub

  21. Private Sub 主体_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  22. ' 同上
  23.     Me.Label0.BackColor = 16777215
  24.     ReleaseCapture
  25. End Sub

Access软件网交流QQ群(群号:198465573)
 
 相关文章
判断鼠标移入或移出窗体  【纵云梯  2012/7/19】
判断鼠标移入或移出窗体另一例  【叶海峰  2012/8/27】
常见问答
技术分类
相关资源
文章搜索
关于作者

t小雨

文章分类

文章存档

友情链接