|
捕捉鼠标
Option Explicit
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function ClipCursor Lib "user32" (lpRect As Any)
As Long
Public Sub DisableTrap(CurForm As Form)
Dim erg As Long
'声明过程变量
'设置新坐标
Dim NewRect As RECT
CurForm.Caption = "释放鼠标"
With NewRect
.Left = 0&
.Top = 0&
.Right = Screen.Width / Screen.TwipsPerPixelX
.Bottom = Screen.Height / Screen.TwipsPerPixelY
End With
erg& = ClipCursor(NewRect)
End Sub
Public Sub EnableTrap(CurForm As Form)
Dim x As Long, y As Long, erg As Long
'声明过程变量
'设置新坐标
Dim NewRect As RECT
'得到TwipsperPixel
'窗体的ScaleMode必须设为Twips!!!
x& = Screen.TwipsPerPixelX
y& = Screen.TwipsPerPixelY
CurForm.Caption = "捕捉鼠标"
'设置光标的范围
With NewRect
.Left = CurForm.Left / x&
.Top = CurForm.Top / y&
.Right = .Left + CurForm.Width / x&
.Bottom = .Top + CurForm.Height / y&
End With
erg& = ClipCursor(NewRect)
End Sub
'2、在窗体上添加两个命令按钮(Command Button)。
'3 、把以下代码添加如Form1。
Private Sub Command1_Click()
EnableTrap Form1
End Sub
Private Sub Command2_Click()
DisableTrap Form1
End Sub
Private Sub Form_Unload(Cancel As Integer)
'程序结束时释放鼠标。
DisableTrap Form1
End Sub
|