📄 m85.htm
字号:
<html>
<head>
<title>VB教程</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<p align="center"><script src="../../1.js"></script></a>
<body bgcolor="#ffffff" leftmargin="5" topmargin="1" marginheight="5" marginwidth="5">
<div align=center>
<table border=0 cellpadding=0 cellspacing=0 width=680 align="center">
<tbody>
<tr>
<td bgcolor=#000000 height=9>
<div align=center class=H1> <font color="#FFFFFF">怎样限制鼠标移动</font> </font> </font></div>
</td>
</tr>
<tr valign=top>
<td class=H1 height=76>
<p align="left"> <br>
</font><span
id=content> 本文介绍如何限制鼠标在窗口的指定范围内移动。这个技术在需要防止用户鼠标在指定区域内活动时非常<br>
有用。例如在一个射击游戏中,需要限制鼠标在射击区内移动。<br>
操作步骤<br>
1、建立一个新工程项目,缺省建立窗体FORM1<br>
2、添加一个新模体<br>
3、粘贴下面代码到新模体 </font></span></p>
<p> <span id=content><br>
Option ExplicitDeclare Function ClipCursor Lib "user32" (lpRect As Any)
As Long<br>
Declare Function ClipCursorClear Lib "user32" Alias "ClipCursor" (ByVal
lpRect As Long) As Long<br>
Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint
As POINTAPI) As Long<br>
Type RECT<br>
Left As Long<br>
Top As Long<br>
Right As Long<br>
Bottom As Long<br>
End Type<br>
Type POINTAPI<br>
X As Long<br>
Y As Long<br>
End Type<br>
Public RetValue As Long<br>
Public ClipMode As Boolean<br>
</span></font></p>
<p> <span id=content>Public Sub SetCursor(ClipObject
As Object, Setting As Boolean)<br>
' used to clip the cursor into the viewport and<br>
' turn off the default windows cursor<br>
</span></font></p>
<p> <span id=content> Dim CurrentPoint As POINTAPI<br>
Dim ClipRect As RECT<br>
</span></font></p>
<p> <span id=content> If Setting = False Then<br>
' set clip state back to normal<br>
RetValue = ClipCursorClear(0)<br>
Exit Sub<br>
End If<br>
</span></font></p>
<p> <span id=content> ' set current position<br>
With CurrentPoint<br>
.X = 0<br>
.Y = 0<br>
End With <br>
' find position on the screen (not the window)<br>
RetValue = ClientToScreen(ClipObject.hwnd, CurrentPoint) <br>
' designate clip area<br>
With ClipRect<br>
.Top = CurrentPoint.Y<br>
.Left = CurrentPoint.X<br>
.Right = .Left + ClipObject.ScaleWidth<br>
.Bottom = .Top + ClipObject.ScaleHeight<br>
End With ' clip it<br>
RetValue = ClipCursor(ClipRect)<br>
</span></font></p>
<p> <span id=content>End Sub</span></font></p>
<p> <span
id=content><br>
4、添加一个图片框控件(PICTURE1)到窗体(FORM1)<br>
5、设置PICTURE1的尺寸和FORM1的一样大<br>
6、在PICTURE1的CLICK事件中添加以下代码:</span></font></p>
<p> <span id=content><br>
Private Sub Picture1_Click()<br>
ClipMode = Not ClipMode<br>
SetCursor Picture1, ClipMode<br>
End Sub</span></font></p>
<p> <span
id=content><br>
7、保存工程项目<br>
8、运行程序。在图片框单击鼠标,鼠标将被包含在图片框控件的区域内。要释放限制状态只需再次单击鼠标。<br>
注意:如果释放限制状态失败,鼠标将被永久限制,只能用重新启动机器来解决。<br>
另一个限制鼠标活动范围的方法是关闭鼠标,用其他图象代替光标,例如手枪。</span></font></p>
</table>
</div>
<p align="center"><a href="../../pian/vb.htm">回首页</a>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -