Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

判断鼠标移出窗体

时 间:2009-12-05 08:58:32
作 者:t小雨   ID:4598  城市:柳州
摘 要:判断鼠标移出窗体
正 文:

用标签或图像作为按钮时,可在鼠标移动时改变标签或图像的外观。
通常在鼠标移到标签或图像上面时改变改变标签或图像的外观,在鼠标移到窗体上时恢复外观。
但经常遇到,标签或图像在窗体边缘时,就不会发生窗体的鼠标移动事件,标签或图像不能恢复外观。
解决办法是用两个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交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助