请输入您要查询的百科知识:

 

词条 MouseMove
释义

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事件语法包含下列部分:

部分 描述

object 一个对象表达式,其值是“应用于”列表中的一个对象。

index 一个整数,用来唯一地标识一个在控件数组中的控件。

button 一个整数,它对应鼠标各个按钮的状态,如果某个按钮按下,其中就有一个二进制位被设置。button 参数是具有相应于左按钮(位 0),右按钮(位 1),以及中间按钮(位 2)的一个位字段。这些位的值分别等于 1,2,和 4。它指示这些鼠标按钮的整体状态;三个二进制位中的一些、全部、或一个也没有被设置,指示这些按钮中的一些、全部、或一个也没有被按下。

shift 一个整数,该整数相应于 SHIFT,CTRL,和 ALT 键的状态。某键被按下使得一个二进制位被设置。shift参数是具有相应于 SHIFT 键(位 0),CTRL 键(位 1),以及 ALT 键(位 2)最少二进制位的一个位字段。这些位的值分别等于 1,2,和 4。shift 参数指示这些键的状态。这些位中可能有一些、全部、或者一个也没有被设置,指示这些键中的一些、全部、或者一个也没有被按下。例如,CTRL 和 ALT 键都被按下,则 shift 的值就是 6。

x, y 一个指定鼠标指针当前位置的数。x y 的值所表示的总是通过该对象 ScaleHeight, ScaleWidth, ScaleLeft,和 ScaleTop 属性所建立的坐标系统的方式。

说明

MouseMove事件伴随鼠标指针在对象间移动时连续不断地产生。除非有另一个对象捕获了鼠标,否则,当鼠标位置在对象的边界范围内时该对象就能接收 MouseMove事件。

要测试 button shift 参数,可使用对象浏览器中的 Visual Basic (VB) 对象库中所列出的常数,用来定义该参数中的各个位:

常数(按钮) 值 描述

vbLeftButton 1 左按钮按下。

vbRightButton 2 右按钮按下。

vbMiddleButton 4 中间按钮按下。

常数(换挡) 值 描述

vbShiftMask 1 SHIFT 键按下。

vbCtrlMask 2 CTRL 键按下。

vbAltMask 4 ALT 键按下。

然后这些常数用作位屏蔽,对于按钮的各种组合,无须计算出各个组合的唯一的位字段值即可进行检测。

要测试某一条件,首先将各个结果赋给一个临时整型变量然后再与一个位屏蔽的 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)提供有关可用对象的信息。可用对象浏览器检查对象库的内容,以获得有关对象的信息。

层叠事件

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

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/1/11 15:41:07