Основы офисного программирования и язык VBA

       

События MouseDown, MouseUp (Мышь нажата, Мышь отпущена)


Возникают, когда пользователь нажимает (MouseDown) и отпускает (MouseUp) кнопку мыши.

Заголовки процедур обработки этих событий для набора страниц и полосы вкладок имеют вид:

Private Sub объект_MouseDown (index As Long, ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)

и

Private Sub объект_MouseUp (index As Long, ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single),

а для других элементов:

Private Sub объект_MouseDown (ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)

и

Private Sub объект_MouseUp (ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)

Здесь параметры имеют следующий смысл:

  • объект - имя объекта, которому принадлежит процедура,
  • index - индекс страницы или вкладки, для которой инициируется событие,
  • Button - число, определяющее, какая кнопка нажата (1 - левая, 2 - правая, 4 - средняя),
  • Shift - состояние клавиш Shift, Ctrl и Alt,
  • X и Y - горизонтальная и вертикальная координаты указателя мыши (измеряются в точках от левого края и от верхнего края окна, рамки или страницы).

Возможные значения параметра Shift:

ЗначениеОписание
1нажата клавиша Shift.
2нажата клавиша Ctrl.
3нажаты клавиши Shift и Ctrl.
4нажата клавиша Alt.
5нажаты клавиши Alt и Shift.
6нажаты клавиши Alt и Ctrl.
7нажаты клавиши Alt, Shift и Ctrl.

Для полосы вкладок параметр index определяет вкладку, которую щелкает пользователь. index - 1 означает, что пользователь щелкнул вне вкладки.

В диалоговом окне события MouseDown и MouseUp генерируются, если пользователь нажимает и отпускает кнопку мыши, когда указатель находится на свободном месте окна или на полосе прокрутки.

Типичная последовательность событий, связанных со щелчками выглядит так:

  • MouseDown;
  • MouseUp;
  • Click;
  • DblClick;
  • MouseUp.

Если кнопка мыши нажимается в тот момент, когда указатель находится над некоторым объектом, то этот объект "захватывает" мышь и получает в дальнейшем все связанные с ней события, включая последнее MouseUp. Поэтому координаты X и Y не всегда задают точку внутри границ объекта, получающего событие, связанное с мышью.

С помощью процедур обработки событий MouseDown и MouseUp можно выяснить, какая кнопка мыши нажата, и определить реакцию системы на эти щелчки. Параметр Shift позволяет также выяснить, какие из управляющих клавиш Shift, Ctrl и Alt при этом нажаты.



Содержание раздела