|
- Public Event MouseIN(X As Long, Y As Long)
- Public Event MouseOUT(X As Long, Y As Long)
- Public Event MouseEnter()
- Public Event MouseLeave()
- Private IsMouseIn As Boolean
- Private mvarTheControl As Object
- Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
- Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
- Private Type POINTAPI
- X As Long
- Y As Long
- End Type
- Private Type RECT
- Left As Long
- Top As Long
- Right As Long
- Bottom As Long
- End Type
- Public Sub CheckMouse()
- Dim controlRect As RECT, pt As POINTAPI
- GetWindowRect mvarTheControl.hwnd, controlRect
- GetCursorPos pt
- If pt.X >= controlRect.Left And pt.X <= controlRect.Right And pt.Y >= controlRect.Top And pt.Y <= controlRect.Bottom Then
- RaiseEvent MouseIN(pt.X, pt.Y)
- If IsMouseIn <> True Then
- IsMouseIn = True
- RaiseEvent MouseEnter
- End If
- Else
- RaiseEvent MouseOUT(pt.X, pt.Y)
- If IsMouseIn <> False Then
- IsMouseIn = False
- RaiseEvent MouseLeave
- End If
- End If
- End Sub
- Public Property Set TheControl(ByVal vData As Object)
- Set mvarTheControl = vData
-
- End Property
- Public Property Get TheControl() As Object
-
- Set TheControl = mvarTheControl
- End Property
复制代码 |
|