->这个技巧将向您展示如何使用捕捉光标的API函数阻止鼠标指针移出窗体。
注意!:如果窗体的BorderStyle属性被设为sizeable(2或5),则当你改变窗体的大小时鼠标就会“逃脱”程序的监控!因此你最好把BorderStyle设为0、1、3或4。
步骤:
把以下代码添加如模块:
OptionExplicit
TypeRECT
LeftAsLong
TopAsLong
RightAsLong
BottomAsLong
EndType
DeclareFunctionClipCursorLib”user32″_
(lpRectAsAny)AsLong
PublicSubDisableTrap(CurFormAsForm)
DimergAsLong
声明过程变量
设置新坐标
DimNewRectAsRECT
CurForm.Caption=”释放鼠标”
WithNewRect
.Left=0&
.Top=0&
.Right=Screen.Width/Screen.TwipsPerPixelX
.Bottom=Screen.Height/Screen.TwipsPerPixelY
EndWith
erg&=ClipCursor(NewRect)
EndSub
PublicSubEnableTrap(CurFormAsForm)
DimxAsLong,yAsLong,ergAsLong
声明过程变量
设置新坐标
DimNewRectAsRECT
得到TwipsperPixel
窗体的ScaleMode必须设为Twips!!!
x&=Screen.TwipsPerPixelX
y&=Screen.TwipsPerPixelY
CurForm.Caption=”捕捉鼠标”
设置光标的范围
WithNewRect
.Left=CurForm.Left/x&
.Top=CurForm.Top/y&
.Right=.Left CurForm.Width/x&
.Bottom=.Top CurForm.Height/y&
EndWith
erg&=ClipCursor(NewRect)
EndSub
2、在窗体上添加两个命令按钮(CommandButton)。
3、把以下代码添加如Form1。
PrivateSubCommand1_Click()
EnableTrapForm1
EndSub
PrivateSubCommand2_Click()
DisableTrapForm1
EndSub
PrivateSubForm_Unload(CancelAsInteger)
程序结束时释放鼠标。
DisableTrapForm1
EndSub->
->
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:
IDC资讯中心 »
怎样捕捉窗体的鼠标_visualbasic教程