• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

怎样限制鼠标移动

发布: 2007-6-21 21:57 | 作者: -  | 来源:   | 查看: 29次 | 进入软件测试论坛讨论

领测软件测试网

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

  有用。例如在一个射击游戏中,需要限制鼠标在射击区内移动。

  操作步骤

  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 defa 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、运行程序。在图片框单击鼠标,鼠标将被包含在图片框控件的区域内。要释放限制状态只需再次单击鼠标。

  注意:如果释放限制状态失败,鼠标将被永久限制,只能用重新启动机器来解决。

  另一个限制鼠标活动范围的方法是关闭鼠标,用其他图象代替光标,例如手枪。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网