Limit Mouse


Option Explicit

Private Type RECT
left                 As Integer
top                  As Integer
right                As Integer
bottom               As Integer
End Type

Private Type POINT
x                    As Long
y                    As Long
End Type

Private Declare Sub ClipCursor Lib “user32” (lpRect As Any)
Private Declare Sub GetClientRect Lib “user32” (ByVal hWnd As _
Long, lpRect As RECT)
Private Declare Sub ClientToScreen Lib “user32” (ByVal hWnd As _
Long, lpPoint As POINT)
Private Declare Sub OffsetRect Lib “user32” (lpRect As RECT, _
ByVal x As Long, ByVal y As Long)

Public Sub LimitCursorMovement(ctl As Object)

Dim client           As RECT
Dim upperleft        As POINT
Dim lHwnd As Long
On Error Resume Next
lHwnd = ctl.hWnd
If lHwnd = 0 Then Exit Sub
GetClientRect ctl.hWnd, client
upperleft.x = client.left
upperleft.y = client.top
ClientToScreen ctl.hWnd, upperleft
OffsetRect client, upperleft.x, upperleft.y
ClipCursor client
End Sub

Public Sub ReleaseLimit()
‘Releases the cursor limits
‘Be sure to call on unloading the form
ClipCursor ByVal 0&
End Sub

Private Sub cmdNormal_Click()
ReleaseLimit
End Sub

Private Sub cmdSetLimit_Click()
LimitCursorMovement Me
End Sub

Private Sub Form_Load()
ReleaseLimit

End Sub

Private Sub Form_Unload(Cancel As Integer)
ReleaseLimit
End Sub

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s