設(shè)定Mouse在某個固定范圍

字號:

Type RECT
     Left As Long
     Top As Long
     Right As Long
     Bottom As Long
    End Type
    Declare Function ClipCursor Lib "user32" (lpRect As Any) As Long
    Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) As Long
    Declare Function SetCursorPos Lib "user32" (ByVal x As Long, _
     ByVal y As Long) As Long
    Declare Function GetWindowRect Lib "user32" Alias "GetWindowRect" _
     (ByVal hwnd As Long, lpRect As RECT) As Long
    注釋:設(shè)定Mouse可移動的圍是在某個control項之內(nèi)
    Public Function toLockCursor(ByVal ctlHwnd As Long) As Boolean
    Dim rect5 As RECT
    Dim res As Long
    GetWindowRect ctlHwnd, rect5 注釋:取得window的四個角
    rect5.Top = rect5.Top
    rect5.Left = rect5.Left
    rect5.Bottom = rect5.Bottom
    rect5.Right = rect5.Right
    SetCursorPos (rect5.Top + rect5.Bottom) 2, (rect5.Left + rect5.Right) 2
    res = ClipCursor(rect5)
    If res = 1 Then
     toLockCursor = True
    Else
     toLockCursor = False
    End If
    End Function
    注釋:設(shè)定Mouse移動的圍為個螢?zāi)?BR>    Public Sub toUnLockCursor()
    Dim rscreen As RECT
    rscreen.Top = 0
    rscreen.Left = 0
    rscreen.Right = Screen.Width Screen.TwipsPerPixelX
    rscreen.Bottom = Screen.Height Screen.TwipsPerPixelY
    ClipCursor rscreen
    End Sub
    例如:設(shè)定Mouse只能在Form的范圍
    Private Sub Command1.Click()
    Call toLockCursor(Me.hWnd)
    End Sub
    Private Sub Command2.Click()
    Call toUnLockCursor()
    End Sub