怎判断Mouse是否在窗体内

yingxiangchen 2004-11-07 12:36:35
如题,请大侠赐教!谢谢,急,在线等。。
...全文
76 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
online 2004-11-07
  • 打赏
  • 举报
回复
Option Explicit
Private Declare Function SetCapture Lib "user32" _
(ByVal hwnd As Long) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
With Me
'当鼠标在越出控件外
If Not ((X < 0) Or (Y < 0) Or _
(X > .Width) Or (Y > .Height)) Then

'鼠标指针在窗口外时,让其他控件也收到标事件
ReleaseCapture

'为了不让 MouseMove 事件反复触发
If .Caption <> "inside" Then
.Caption = "inside"
End If

'鼠标指针在窗口 上,捕获他但鼠标移出是我们将收到鼠标事件
SetCapture .hwnd

Else
SetCapture 0
.Caption = "outside"
End If
End With
End Sub
zahota 2004-11-07
  • 打赏
  • 举报
回复
同意楼上.
Tiger_Zhao 2004-11-07
  • 打赏
  • 举报
回复
用 GetCursorPos 取得 Mouse 屏幕坐标,用 GetWindowRect 取得窗口范围,最后用 PtInRect 判断Mouse是否在窗体内

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧