更新时间:2024-04-04 10:50
MouseMove,在移动鼠标时发生,语法是一个对象表达式,与对象库相关。
示例应用于
此事件在移动鼠标时发生。
Private Sub Form_MouseMove(buttonAs Integer,shiftAs Integer,xAs Single,yAs Single)
Private Sub MDIForm_MouseMove(buttonAs Integer,shiftAs Integer,xAs Single,yAs Single)
Private Subobject_MouseMove([indexAs Integer,] buttonAs Integer, shiftAs Integer, xAs Single, yAs Single)
MouseMove事件语法包含下列部分:
MouseMove事件伴随鼠标指针在对象间移动时连续不断地产生。除非有另一个对象捕获了鼠标,否则,当鼠标位置在对象的边界范围内时该对象就能接收 MouseMove事件。
要测试 button 或 shift 参数,可使用对象浏览器中的 Visual Basic (VB) 对象库中所列出的常数,用来定义该参数中的各个位:
然后这些常数用作位屏蔽,对于按钮的各种组合,无须计算出各个组合的唯一的位字段值即可进行检测。
要测试某一条件,首先将各个结果赋给一个临时整型变量然后再与一个位屏蔽的 button 或 shift 参数进行比较。测试应当用各个参数进行 And 运算,若结果大于零,则说明该键或按钮被按下。其操作如下:
LeftDown = (Button And vbLeftButton) > 0 CtrlDown = (Shift And vbCtrlMask) > 0
然后,接下去可对结果的各种组合进行检测,其操作如下:
If LeftDown And CtrlDown Then
注意为了对鼠标按钮按下和释放所引起的事件进行处理,可使用 MouseDown 和 MouseUp 事件过程。
MouseMove事件的 button 参数与 MouseDown 和 MouseUp 事件的 button 参数是不同的。对于 MouseMove事件来说,button 参数指示的是所有按钮当前的状态;一个 MouseMove事件可指示某些、全部或没有一个按钮被按下。对于 MouseDown 和 MouseUp 事件来说,button 参数在每个事件精确地指示一个按钮。
在 MouseMove事件中任何时候移动窗口,都能引起层叠事件。当该窗口移动到指针下面时 MouseMove事件将产生。即使是鼠标完全不动 MouseMove事件也能产生。
MouseMove 事件示例
本例演示一个简单的绘图应用程序。当任鼠标按钮按下并拖动时,MouseDown 事件过程和一个相关的 MouseMove 事件协同工作以启动绘图。 MouseUp 事件过程禁止绘图。 要尝试这个例子,可将代码粘贴到一个窗体的声明部分,然后按 F5 键,单击窗体并在鼠标按钮按下时移动鼠标。
Dim PaintNow As Boolean ' 声明变量.Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)PaintNow = True ' 启动绘图。 End SubPrivate Sub Form_MouseUp (Button As Integer, X As Single, Y As Single)PaintNow = False ' 关闭绘图。 End SubPrivate Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)If PaintNow ThenPSet (X, Y) ' 画一个点。 End IfEnd SubPrivate Sub Form_Load()DrawWidth = 10 ' 使用更宽的刷子。 ForeColor = RGB(0, 0, 255) ' 设置绘图颜色。 End Sub
应用于:
CheckBox 控件
CommandButton 控件
Data 控件
DirListBox 控件
FileListBox 控件
Form 对象、Forms 集合
Frame 控件
Image 控件
Label 控件
ListBox 控件
MDIForm 对象
OLE 容器控件
OptionButton 控件
PictureBox 控件
PropertyPage 对象
TextBox 控件
UserControl 对象
说明具体对象的表达式,可以包含对象的容器。例如,应用程序可以拥有 Application 对象,其中包含 Document对象,而 Document对象又包含 Text对象。
有一公共名称、型态、事件过程的一组控件。数组中的每个控件都有唯一索引数,可用来决定是哪个控件识别事件。
一个对话框,可在其内检查对象库中的内容,以获得有关对象的信息。
文件扩展名为 .olb 的文件,向自动化控件(比如 Visual Basic)提供有关可用对象的信息。可用对象浏览器检查对象库的内容,以获得有关对象的信息。
由事件过程直接或间接调用它自身所引起的一系列事件,也称为事件的层叠或递归。层叠事件过程经常引起运行时错误的结果,例如堆栈溢出。