注意!:如果窗体的borderstyle属性被设为sizeable(2或5),则当你改变窗体的大小时鼠标就会“逃脱”程序的监控!因此你最好把borderstyle设为0、1、3或4。
步骤:
-
把以下代码添加如模块:
option explicit
type rect
left as long
top as long
right as long
bottom as long
end type
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