mousemove 事件

应用于 请参阅

当用户在一个对象上移动鼠标时发生。

语法

PROCEDURE Object.MouseMove
[LPARAMETERS nIndex, nButton, nShift, nXCoord, nYCoord]

或者 

LPARAMETERS nButton, nShift, nXCoord, nYCoord

参数

必须在事件过程中包含 LPARAMETERS 或 PARAMETERS 
语句,并且为每个参数指定一个名称。Visual FoxPro 按下列顺序把 5 个参数或 4 个参数传送给 mousemove 事件。

nIndex

存放一个数,它唯一标识控制数组中的一个控制。仅当控制是控制数组的一部分时,才传送 nIndex 参数。

nButton

存放一个数,它以位总和的形式指定鼠标键的状态。如下表所示:

对 nButton 的鼠标按钮值

Windows nButton
左鼠标键 1
右鼠标键 2
中鼠标键 4

如果按下了一个键,则设置一个位。nButton 参数表明设置了哪个位,0 位相应于左鼠标键,1 位相应于右鼠标键,2 位相应于中鼠标键,对于三种情况 nButton 分别取值为 1,2,4。它表明了鼠标键的各种状态:部分、全部、或不设置三个位,表明部分、全部或没有鼠标键按下。可能的取值从 0 到 7。单个鼠标键相应于下列值:1 (左),2 (右),和 4(中)。例如,如果左和右鼠标键都按下了,则 nButton 的值为 3。

nShift

存放一个数,它指定在 燰isual FoxPro for Windows 中移动鼠标时, SHIFT,CTRL,和 ALT 键的状态。

下表列出了单独修改键在 nShift 中返回的值。

nShift 的修改键值

Windows
SHIFT 1
CTRL 2
ALT 4

如果按下鼠标时,有多于一个的修改键也被按下,则 nShift 参数是这些修改键的和。例如,在 Visual FoxPro for Windows 中,如果按下鼠标按钮时,也按下 CTRL 键,那么nShift 的值为 2。但是如果 CTRL 和 ALT 键全部按下,那么 nShift 的值为 6。

nXCoord, nYCoord

存放表单中鼠标指针当前的水平 (nXCoord) 和垂直 (nYCoord)位置。这些坐标总是以 ScaleMode 属性的设置值为度量单位,按照指定的表单坐标系统表达的。

当鼠标指针在对象之间移动时,连续触发 mousemove 事件。

附注
可以用 MouseDown 和 MouseUp 事件响应由按下和释放鼠标键引起的事件。
MouseMove 使用的 nButton 参数与 MouseDown 和 MouseUp 使用的 nButton 参数不同。对于 MouseMove,nButton 参数表明了所有键的当前状态;一个单独的 mousemove 事件可以表明部分、全部或没有按下任何键;对于 MouseDown 或 MouseUp,每个事件中 nButton 参数确切地指明一个键。
要避免在 mousemove 事件过程中移动一个窗口,这会引起级联事件并产生运行错误,例如堆栈溢出。当窗口在指针下移动时会触发 mousemove 事件。这样即使鼠标静止时也会触发一个 mousemove 事件。