MouseMove

Событие происходит при перемещении мыши.

Синтаксис

Sub Form_MouseMove(button As Integer, shift As Integer, x As Single, y As Single)
Sub Label1_MouseMove(
button As Integer, shift As Integer, x As Single, y As Single)
Sub Command1_MouseMove(
button As Integer, shift As Integer, x As Single, y As Single)
Sub Pic1_MouseMove(button As Integer, shift As Integer, x As Single, y As Single)
Sub Text1_MouseMove(
button As Integer, shift As Integer, x As Single, y As Single)
Sub MText1_MouseMove(
button As Integer, shift As Integer, x As Single, y As Single)
Sub TextBox1_MouseMove(
button As Integer, shift As Integer, x As Single, y As Single)
Sub Check1_MouseMove(
button As Integer, shift As Integer, x As Single, y As Single)
Sub Opt1_MouseMove(
button As Integer, shift As Integer, x As Single, y As Single)
Sub Img1_MouseMove(button As Integer, shift As Integer, x As Single, y As Single)
Sub Frame1_MouseMove(
button As Integer, shift As Integer, x As Single, y As Single)
Sub Skin1_MouseMove(
button As Integer, shift As Integer, x As Single, y As Single)
Sub PBar1_MouseMove(
button As Integer, shift As Integer, x As Single, y As Single)

Части синтаксической последовательности для события MouseMove приведены в таблице:

Часть

Описание

1
Целое число, однозначно определяющее элемент управления, если он находится в массиве элементов управления
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) в Object Browser:

Константа (кнопка)

Значение

Описание

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 используются для создания реакции на нажатие и отпускание кнопок мыши.

Аргумент button для события MouseMove отличается от аргумента button для событий MouseDown и MouseUp. В случае события MouseMove, аргумент button указывает текущее состояние всех кнопок. Даже одно событие MouseMove может показать, что нажаты несколько, все или никакие кнопки. В случае событий MouseDown и MouseUp, аргумент button всегда указывает только на одну кнопку в каждом событии.

Если в событии MouseMove переместить окно, то это может вызвать каскадное событие. События MouseMove порождаются при перемещении окна под курсором мыши. Иными словами, событие MouseMove может быть создано и при абсолютно неподвижной мыши.


Назад