龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VB开发 >

怎样捕捉窗体的鼠标

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
->这个技巧将向您展示如何使用捕捉光标的API函数阻止鼠标指针移出窗体。 注意!:如果窗体的BorderStyle属性被设为sizeable(2或5),则当你改变窗体的大小时鼠标就会“逃脱”程序的监
->这个技巧将向您展示如何使用捕捉光标的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->
->

精彩图集

赞助商链接