Функции ввода. Сообщения мыши., страница 2

применяется сообщение WM_KEYDOWN. Нажатие этих клавиш лучше всего обрабатывать с использованием кодов виртуальных клавиш. Для получения с клавиатуры ввода кодов ASCII, таких как буквы, числа и печатаемые символы, следует использовать сообщение WM_CHAR. Использование сообщения \VM_CHAR— лучший способ работы с буквами, поскольку буквы верхнего и нижнего регистра имеют разные значения ASCII. При использовании для этой цели сообщения WM_KEYDOWNв приложении приходится проверять состояние клавиши Shift для определения того, нажата ли клавиша в верхнем или нижнем регистре. Если пользователь удерживает клавишу Alt, нажимая другую клавишу, приложение получает последовательность сообщений WM_SYSKEYDOWN, WM_SYSCHARи WM_SYSKEYUP. Эти сообщения редко приходится обрабатывать непосредственно, поскольку они обычно применяются в качестве клавиатурных оперативных клавиш.

Виртуальныеклавиши

Применение виртуальных клавиш освобождает программиста от необходимости определять, с клавиатурой какого типа работает пользователь, поскольку код виртуальной клавиши для первой функциональной клавиши всегда остается тем же самым, независимо от изготовителя или модели клавиатуры. Сообщения WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWNи WM_SYSKEYUPсодержат коды виртуальных клавиш в виде параметра wParam.

В табл. 9.3 перечислены все коды и их значения в том виде, как они определены в API Win32. Виртуальные коды для символьных и цифровых клавиш совпадают с их эквивалентами в коде ASCII (в верхнем регистре). Обратите внимание, что цифры на цифровой клавиатуре имеют коды, отличные от цифр, расположенных в верхнем ряду обычной клавиатуры. Обратите также внимание, что есть только один код виртуальной клавиши для клавиш Shift. Обе клавиши Shift вырабатывают один и тот же код VK SHIFT.

Таблица 9.3. Коды виртуальных клавиш

Имя символической константы

Значение (16-ричное)

Эквивалент аля мыши или клавиатуры

VK_LBUTTON

01

Левая кнопка мыши.

VK_RBUTTON

02

Правая кнопка мыши.

VK_CANCEL

03

Обработка комбинации клавиш Control-Break.

VK_MBUTTON

04

Средняя кнопка мыши (мышь с тремя кнопками) или одновременно левая и правая кнопки мыши.

VK_BACK

08

Клавиша возврата на позицию (Backspace).

VK_TAB

09

Клавиша Tab.

VK_CLEAR

ОС

Клавиша Clear.

VK_RETURN

OD

Клавиша Enter.

VK_SWFT

10

Клавиша Shift.

VK_CONTROL

11

Клавиша Ctrl.

VK_MENU

12

Клавиша Alt.

VK_PAUSE

13

Клавиша Pause.

Имя символической константы

Значение (16-ричное)

Эквивалент лая мыши или клавиатуры

VK_CAWTAL

14

Клавиша Caps Lock.

VK_KANA

15

Режим IME Капа.

VK_HANGUL

15

Режим IME Hangul.

VK_JUNJA

17

• Режим IME Junja.

VK_FINAL

18

Заключительный режим IME.

VK_HANJA

19

Режим IME Hanja.

VK_KANJI

19

Режим IME Kanji.

VK_ESCAPE

IB

Клавиша Esc.

VK_CONVERT

1C

Преобразование IME.

VK_NONCONVERT

ID

Отсутствие преобразования IME.

VK_ACCEPT

IE

Подтверждение IME.

VK  MODECHANGE

IF

Запрос смены режима IME.

VK_SPACE

20

Клавиша пробела.

VK_PRIOR

21

Клавиша PgUp.

VK_NEXT

22

Клавиша PgDn.

VK_END

23

Клавиша End.

VK_HOME

24

Клавиша Ноте.

VK_LEFT

25

Клавиша стрелки влево.

VK_UP

26

Клавиша стрелки вверх.

VK_RIGHT

27

Клавиша стрелки вправо.

VK_DOWN

28

Клавиша стрелки вниз.

VK_SELECT

29

Клавиша Select.

VK_PRINT

2A

Клавиша Print.

VK_EXECUTE

2B

Клавиша Execute.

VK_SNAPSHOT

2C

Клавиша Print Screen.

VK_INSERT

2D

Клавиша Insert.

VK_DELETE

2E

Клавиша Delete.

VK_HELP

2F

Клавиша Help.

VK_0-VK_9

30-39

Клавиши 0—9.

VK_A-VK_Z

41-5A

Клавиши A— Z.

VK_LWIN

5B

Левая клавиша Windows.

VK_RW1N

5C

Правая клавиша Windows.

VK_APPS

5D

Клавиша приложений.

VK_SLEEP

5F

Клавиша перевода компьютера в состояние простоя.

VK NUMPADO

«0

Клавиша 0 цифровой клавиатуры.

VK_NUMPAD1

61

Клавиша 1 цифровой клавиатуры

Имя символической константы

Значение (16-ричное)

Эквивалент аля мыши или клавиатуры

VK_NUMPAD2

62

Клавиша 2 цифровой клавиатуры

VK_NUMPAD3

63

Клавиша 3 цифровой клавиатуры

VK_NUMPAD4

64

Клавиша 4 цифровой клавиатуры

VK_NUMPAD5

65

Клавиша 5 цифровой клавиатуры

VK_NUMPAD6

66

Клавиша 6 цифровой клавиатуры

VK_NUMPAD7

67

Клавиша 7 цифровой клавиатуры

VK_NUMPAD8

68

Клавиша 8 цифровой клавиатуры

VK_NUMPAD9

69

Клавиша 9 цифровой клавиатуры

VK_MULTB»LY

6A

Клавиша умножения.

VK_ADD

Клавиша сложения.

VK_SEPARATOR

6C

Клавиша разделителя.

VK_SUBTRACT

6D

Клавиша вычитания.

VK_DECIMAL

6E

Клавиша десятичной точки.

VK_DWDE

6F

Клавиша деления.

VK_F1-VK_F24

70-87

Клавиша F1  — F24.

VK_NUMLOCK

90

Клавиша Mum Lock.

VK_SCROLL

91

Клавиша Scroll Lock.

VK_LSHIFT

АО

Левая клавиша Shift. Применяется только в функциях GetKeySfate и Get AsyncKey State.

VK_RSH1FT

A1

Правая клавиша Shift. Применяется только в функциях GetKeyState и GetAsyncKeyState.

VK_LCONTROL

A2

Левая клавиша Ctrl. Применяется только в функциях GetKeyState и GetAsyncKeyState.

VK_RCONTROL

A3

Правая клавиша Ctrl. Применяется только в функциях GetKeyState и GetAsyncKeyState.

VK_LMENU

A4

Левая клавиша Alt. Применяется только в функциях GetKeyState и GetAsyncKeyState.

VK_RMENU

A5

Правая клавиша Alt. Применяется только в функциях GetKeyState и GetAsyncKeyState.

VK_BROWSER_BACK

A6

Клавиша Back браузера.

VK_BROWSER_FORWARD

A7

Клавиша Forward браузера.

VK_BROWSER_REFRESH

AS

Клавиша Refresh браузера.

VK_BROWSER_STOP

A9

Клавиша Stop браузера.

VK_BROWSER_SEARCH

AA

Клавиша Search браузера.

VK_BROWSER_FAVORITES

AB

Клавиша Favorites браузера.

VK_BROWSER_HOME

AC

Клавиша Ноте браузера.

VK_VOLUME_MUTE

AD

Клавиша Volume Mute.

VK_VOLUME_DOWN

AE

Клавиша Volume Down.

Имя символической константы

Значение (16-ричное)

Эквивалент аля мыши или клавиатуры

VK_VOLUME_UP

AF

Клавиша Volume Up.

VK_MEDIA_NEXT_TRACK

BO

Клавиша Next Track.

VK_MEDIA_PREV_TRACK

B1

Клавиша Previous Track.

VK_MEDIA_STOP

B2

Клавиша Stop Media.

VK_MEDIA_PLAY_PAUSE

B3

Клавиша Play/Pause Media.

VK_LAUNCH_MAIL

B4

Клавиша Start Mail.

VK_LAUNCH_MEDIA_SELECT

B5

Клавиша Select Media.

VK_LAUNCH_APP1

B6

Клавиша Start Application 1 .

VK_LAUNCH_APP2

B7

Клавиша Start Application 2.

VK_OEM_1

BA

Клавиша ";" и ":" американской стандартной клавиатуры.

VK_OEM_PLUS

BB

Клавиша "+" американской стандартной клавиатуры.

VK_OEM_COMMA

BC

Клавиша "," американской стандартной клавиатуры.

VK_OEM_MNUS

BD

Клавиша "-" американской стандартной клавиатуры.

VK_OEM_PERIOD

BE

Клавиша "." американской стандартной клавиатуры.

VK_OEM_2

BF

Клавиша "/" и "?" американской стандартной клавиатуры.

VK_OEM_3

CO

Клавиша "~" американской стандартной клавиатуры.

VK_OEM_4

DB

Клавиша "[" и "{" американской стандартной клавиатуры.

VK_OEM_5

DC

Клавиша "\" и "|" американской стандартной клавиатуры.

VK_OEM_6

DO

Клавиша "]" и "}" американской стандартной клавиатуры.

VK_OEM_7

DE

Клавиша " ' " и ' "    американской стандартной клавиатуры.

VK_OEM_8

DF

Неизвестная клавиша.

VK_OEM_102

E2

Клавиша угловой скобки либо клавиша обратного слэша на 1 02-клавишной клавиатуре RT.

VK_PROCESSKEY

E5

Клавиша обработки IME.

VK_PACKET

E7

Применяется для передачи символов Unicode в виде комбинации клавиш. Клавиша VK_P АСКЕТ представляет собой младшее слово 32-разрядного значения виртуальной клавиши, используемой для неклавиатурных методов ввода.

VK_ATTN

Ft

Клавиша Attn.

VK_CRSEL

F7

Клавиша CrSel.

VK_EXSEL

F8

Клавиша ExSel.

VK_EREOF

F9

Клавиша Erase EOF.

VK_PLAY

FA

Клавиша Play.

Имясимволической константы

ЗначениеЭквиваленталямышииликлавиатуры (16-ричное)  

VK_ZOOM

FB                  КлавишаZoom.

VK_PA1

FD                 КлавишаРА1.

VK_OEM_CLEAR

FE                  КлавишаClear.