📄 ba66.htm
字号:
<HTML>
<HEAD>
<TITLE>怎样限制鼠标移动</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
</head>
<p align="center"><script src="../../1.js"></script></a>
<BODY topMargin=4 vLink=#0000ff>
<TABLE border=0 cellPadding=0 cellSpacing=0 width="100%">
<TBODY>
<TR>
<TD height="52">
<DIV align=center>
<CENTER>
<table border=0 cellpadding=0 cellspacing=0 width=679 align="center">
<tbody>
<tr>
<td width=200 height="59">
</TD></TR><!--msnavigation--></TBODY></TABLE>
<table border=0 cellpadding=0 cellspacing=0 width="100%">
<tbody>
<tr><!--msnavigation--><td valign=top height="123">
<div align=center>
<table border=1 bordercolor=#b9d9ff cellpadding=0 cellspacing=0
class=table width=755>
<center>
<tr>
<td width="100%" height="3">
<div align="center"> <strong><b>怎样限制鼠标移动</b> </strong></span></div>
</td>
</tr>
<tr>
<td
width="100%" class="unnamed1" height="124">
<div align="left">
<p align="center"> </p>
<p align="center"><font face="宋体" size="-1">本文介绍如何限制鼠标在窗口的指定范围内移动。这个技术在需要防止用户鼠标在指定区域内活动时非常有用。例如在一个射击游戏中,需要限制鼠标在射击区内移动。<br>
<br>
操作步骤<br>
1、建立一个新工程项目,缺省建立窗体FORM1<br>
<br>
2、添加一个新模体<br>
<br>
3、粘贴下面代码到新模体 <br>
<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>
<br>
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>
<br>
Dim CurrentPoint As POINTAPI<br>
Dim ClipRect As RECT<br>
<br>
If Setting = False Then<br>
' set clip state back to normal<br>
RetValue = ClipCursorClear(0)<br>
Exit Sub<br>
End If<br>
<br>
' 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>
<br>
End Sub<br>
<br>
4、添加一个图片框控件(PICTURE1)到窗体(FORM1)<br>
<br>
5、设置PICTURE1的尺寸和FORM1的一样大<br>
<br>
6、在PICTURE1的CLICK事件中添加以下代码:<br>
<br>
Private Sub Picture1_Click()<br>
ClipMode = Not ClipMode<br>
SetCursor Picture1, ClipMode<br>
End Sub<br>
<br>
7、保存工程项目<br>
<br>
8、运行程序。在图片框单击鼠标,鼠标将被包含在图片框控件的区域内。要释放限制状态只需再次单击鼠标。<br>
<br>
<b>注意:</b><br>
如果释放限制状态失败,鼠标将被永久限制,只能用重新启动机器来解决。另一个限制鼠标活动范围的方法是关闭鼠标,用其他图象代替光标,例如手枪。<br>
<br>
<br>
转载自popcool开发专区<b>(文/梁维彪)</b></font></p>
</div>
</td>
</tr>
</center>
<tr>
<td width="100%" class="unnamed1">
<p align=right><a href="ba65.htm">(上一页)</a>---<a href="ba67.htm">(下一页)</a></p>
</td>
</tr>
<tr>
<td width="100%" class="unnamed1">
</td>
</tr>
<!--msnavigation--></tbody>
</table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -