MouseMove

更新时间: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)提供有关可用对象的信息。可用对象浏览器检查对象库的内容,以获得有关对象的信息。

层叠事件

由事件过程直接或间接调用它自身所引起的一系列事件,也称为事件的层叠或递归。层叠事件过程经常引起运行时错误的结果,例如堆栈溢出

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}