怎样捕捉窗体的鼠标
2006-02-27 11:40:40 来源:WEB开发网
核心提示:->这个技巧将向您展示如何使用捕捉光标的API函数阻止鼠标指针移出窗体,注意!:如果窗体的BorderStyle属性被设为sizeable(2或5),怎样捕捉窗体的鼠标,则当你改变窗体的大小时鼠标就会“逃脱”程序的监控!因此你最好把BorderStyle设为0、1、3或4,步骤:把以下代码添加如模块:OptionExp
->这个技巧将向您展示如何使用捕捉光标的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->
->
赞助商链接