WEB开发网
开发学院WEB开发综合 怎样捕捉窗体的鼠标 阅读

怎样捕捉窗体的鼠标

 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->
->

Tags:怎样 捕捉 窗体

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接