применяется сообщение 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 |
6В |
Клавиша сложения. |
|||||||
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. |
||||||||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.