科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件怎样利用VB限制鼠标移动

怎样利用VB限制鼠标移动

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文介绍如何限制鼠标在窗口的指定范围内移动。这个技术在需要防止用户鼠标在指定区域内活动时非常 有用。

来源:soft6 2008年5月13日

关键字: 鼠标 限制 VB vb.net Windows

  • 评论
  • 分享微博
  • 分享邮件

本文介绍如何限制鼠标在窗口的指定范围内移动。这个技术在需要防止用户鼠标在指定区域内活动时非常 
有用。例如在一个射击游戏中,需要限制鼠标在射击区内移动。 
操作步骤 
1、建立一个新工程项目,缺省建立窗体FORM1 
2、添加一个新模体 
3、粘贴下面代码到新模体 

Option ExplicitDeclare Function ClipCursor Lib "user32" (lpRect As Any) As Long 
Declare Function ClipCursorClear Lib "user32" Alias "ClipCursor" (ByVal lpRect As Long) As Long 
Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long 
Type RECT 
Left As Long 
Top As Long 
Right As Long 
Bottom As Long 
End Type 
Type POINTAPI 
X As Long 
Y As Long 
End Type 
Public RetValue As Long 
Public ClipMode As Boolean 


Public Sub SetCursor(ClipObject As Object, Setting As Boolean) 
'' used to clip the cursor into the viewport and 
'' turn off the default windows cursor 


Dim CurrentPoint As POINTAPI 
Dim ClipRect As RECT 


If Setting = False Then 
'' set clip state back to normal 
RetValue = ClipCursorClear(0) 
Exit Sub 
End If 


'' set current position 
With CurrentPoint 
.X = 0 
.Y = 0 
End With 
'' find position on the screen (not the window) 
RetValue = ClientToScreen(ClipObject.hwnd, CurrentPoint) 
'' designate clip area 
With ClipRect 
.Top = CurrentPoint.Y 
.Left = CurrentPoint.X 
.Right = .Left + ClipObject.ScaleWidth 
.Bottom = .Top + ClipObject.ScaleHeight 
End With '' clip it 
RetValue = ClipCursor(ClipRect) 


End Sub 


4、添加一个图片框控件(PICTURE1)到窗体(FORM1) 
5、设置PICTURE1的尺寸和FORM1的一样大 
6、在PICTURE1的CLICK事件中添加以下代码: 


Private Sub Picture1_Click() 
ClipMode = Not ClipMode 
SetCursor Picture1, ClipMode 
End Sub 


7、保存工程项目 
8、运行程序。在图片框单击鼠标,鼠标将被包含在图片框控件的区域内。要释放限制状态只需再次单击鼠标。 
注意:如果释放限制状态失败,鼠标将被永久限制,只能用重新启动机器来解决。 
另一个限制鼠标活动范围的方法是关闭鼠标,用其他图象代替光标,例如手枪。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章