Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 220


В этой структуре некоторые поля нам уже знакомы. Первое поле dwMousePosition типа COORD - координаты курсора мыши во время наступления события. Если обычно координаты курсора указываются в пикселах, то в данном случае они указываются в символах, причем начало отсчета - левый верхний угол рабочей области окна консоли. Не забудьте, экран-то текстовый!

Поле dwButtonState описывает состояние кнопок мыши на момент возникновения события. Кодируется это поле достаточно замысловато. Считается, что максимум у мыши может быть четыре кнопки (лично я таких мышей не видел и не слышал о них. Может, Microsoft боится повторить ситуацию с 640 кбайтами в DOS?). При этом младший бит определяет состояние самой левой клавиши ( 1 - клавиша нажата), сле-

264

дующий по старшинству бит определяет состояние самой правой клави­ши. Очередной бит связан со второй слева кнопкой, следующий - с третьей слева и, наконец, последний - с четвертой слева кнопкой. Для каждого из этих битов в файле wincon.h определены макросы, которые приведены в табл. 60.

Т а б л и ц а 60. Флаги, определяющие нажатую клавишу мыши

Макрос

Значение

 

FROM LEFT  1ST BUTTON PRESSED RIGHTMOST BUTTON PRESSED FROM LEFT 2ND BUTTON PRESSED FROM LEFT 3RD BUTTON PRESSED

from "left Чтн "button "pressed

 

0x0001 0x0002 0x0004 0x0008 0x0010

 

Таблица 61. События от мыши

Флаг

 

Значение

 

Эффект

 

MOUSE MOVED DOUBLE J7LICK

 

0x0001 0x0002

 

Перемещение мыши Второй щелчок кнопки (при двойном щелчке)

 

До чего же приятно работать с макросами, название которых опреде­ляет их назначение!

С полем dwControlKeyState мы познакомились при изучении работы с клавиатурой. Никаких изменений это поле по сравнению с аналогичным в структуре KEY_EVENT_RECORD не претерпело.

Значение последнего поля, dwEventFlags, определяет действие, кото­рое привело к возникновению события. Если его значение равно нулю, то это означает, что была нажата или отпущена одна из кнопок мыши. Еще два возможных значения этого поля приведены в табл. 61.




Начало  Назад  Вперед



Книжный магазин