您的位置:逆风者 VB 正文
原作者:www.upwinder.com 添加时间:2007-09-01 原文发表:2007-08-31 人气:1 来源:未知

VB中缺少一个MouseLeave事件,给编程带来许多不便。例如,当我们想令鼠标移动到一个命令按钮时令其Caption属性为一个名称,离开时又是另一个名称,我们通常只能这么处理:用两个MouseMove事件:一个是命令按钮的,另一个可能是窗体的,也可能是命令按钮周边的其它控件的。——这无疑很麻烦,而且当控件较为紧凑时往往达不到预期的目的。有没有什么办法可以判断鼠标已经从某一个控件中移走呢?请看下面的例子。
逆风编程技术

在标准EXE工程中缺省创建一个TextBox,然后键入以下代码:

Option Explicit

'申明API函数——
Private Declare Function SetCapture Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long

'通过Text1的MouseMove事件判断鼠标指针位置
Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Dim MouseLeave As Boolean

MouseLeave = (0 <= X) And (X <= Text1.Width) And (0 <= Y) And (Y <= Text1.Height)

If MouseLeave Then
Text1 = "Inside"
SetCapture Text1.hWnd

Else
Text1 = "Outside"
ReleaseCapture
End If

End Sub

运行程序,把鼠标移到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控件。

相关文章

Visual Basic CommandButton 控件
用VB开发即时战略游戏
如何交换鼠标按键
再谈VB程序的加密
VB 神童教程第三章第二节——综合示例六
Visual Basic编程访问WMI对象
VB 神童教程第二章第十二节——综合示例五
Visual Basic通信程序设计
VB的显示/隐藏Start按钮
VB的API编程精粹
读写INI文件的四个函数
Visual Basic程序设计
人民币小写转大写
VB编程的一些基础的问题
自己的邮件自己发
第一个 Visual Basic 应用程序
Visual Basic COM基础讲座之事件
Visual Basic 概述
VB教程 第二章:控件学习
大小写互换的三种方法

相关评论


本文章所属分类:首页 VB
 

  热门关键字: