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

获得MouseLeave的方法

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
VB中缺少一个MouseLeave事件,给编程带来许多不便。例如,当我们想令鼠标移动到一个命令按钮时令其Caption属性为一个名称,离开时又是另一个名称,我们通常只能这么处理:用两个Mou
VB中缺少一个MouseLeave事件,给编程带来许多不便。例如,当我们想令鼠标移动到一个命令按钮时令其Caption属性为一个名称,离开时又是另一个名称,我们通常只能这么处理:用两个MouseMove事件:一个是命令按钮的,另一个可能是窗体的,也可能是命令按钮周边的其它控件的。――这无疑很麻烦,而且当控件较为紧凑时往往达不到预期的目的。有没有什么办法可以判断鼠标已经从某一个控件中移走呢?请看下面的例子。
  
  在标准EXE工程中缺省创建一个TextBox,然后键入以下代码:
  
  OptionExplicit
  
  '申明API函数――
  PrivateDeclareFunctionSetCaptureLib"user32"(ByValhWndAsLong)AsLong
  PrivateDeclareFunctionReleaseCaptureLib"user32"()AsLong
  
  '通过Text1的MouseMove事件判断鼠标指针位置
  PrivateSubText1_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
  
  DimMouseLeaveAsBoolean
  
  MouseLeave=(0<=X)And(X<=Text1.Width)And(0<=Y)And(Y<=Text1.Height)
  
  IfMouseLeaveThen
  Text1="Inside"
  SetCaptureText1.hWnd
  
  Else
  Text1="Outside"
  ReleaseCapture
  EndIf
  
  EndSub
  
  运行程序,把鼠标移到Text1,Text1显示:Inside,移开则显示:Outside,可见已经达到目的了。
  此法适合于一切具有hWnd属性的控件(如下所列):
  
  ProgressBar控件,Slider控件,StatusBar控件,TabStrip控件,ToolbarControl,Animation控件,UpDown控件,DBCombo控件,DBList控件,SSTab控件,PicturtClip控件,RichTextBox控件,PropertyPage对象,UserControl对象,UserDocument对象,CheckBox控件,ComboBox控件,CommandButton控件,DirListBox控件,DriveListBox控件,FileListBox控件,Form对象,Forms集合,Frame控件,HscrollBar,VScrollBar控件,ListBox控件,MDIForm对象,OptionButton控件,PictureBox控件,TextBox控件,OLEContainer控件。->

收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
还没有评论,快来抢沙发吧!

热评话题

按钮 内容不能为空!
立刻说两句吧! 查看0条评论
精彩图集

赞助商链接