Операционная система Microsoft Windows 3.1 для программиста -том 1

Компания Русский электрик - электрификация жилых помещений в Кемерове и пригороде.

Параметры клавиатурных сообщений - часть 2


В этом случае бит предыдущего состояния клавиши (бит 30) можно использовать для обнаружения сообщений, возникших в результате включения автоповтора клавиатуры. Приложение может игнорировать такие сообщения, исключая эффект накопления, когда приложение не может обрабатывать сообщения с такой скоростью, с какой они поступают. Например, если вы будете долго держать клавишу пролистывания страниц в текстовом редакторе, то после того, как вы ее отпустите, текстовый редактор будет еще долго листать ваш документ.

Для сообщений WM_KEYDOWN и WM_KEYUP значение кода контекста (бит 29) и флага изменения состояния (бит 31) всегда равно 0.

Для сообщений WM_SYSKEYUP и WM_SYSKEYDOWN бит 31 равен 1. Но есть два исключения.

Во-первых, если активное окно свернуто в пиктограмму, все сообщения от клавиатуры преобразовываются в системные и, если клавиша <Alt> не нажата, код контекста равен 0.

Во-вторых, на некоторых клавиатурах для ввода символов национального языка могут использоваться комбинации с участием клавиш <Alt>, <Control>, <Shift> и т. п. В этом случае код контекста может быть равен 1, хотя сообщение не является системным.

Обработчик клавиатурного сообщения должен возвратить значение 0 для всех перехваченных сообщений.

Теперь мы расскажем вам о параметре wParam.

Как мы уже говорили, этот параметр содержит код виртуальной клавиши, соответствующей нажатой физической клавише. Код виртуальной клавиши не зависит от аппаратной реализации клавиатуры.

Многие коды виртуальных клавиш имеют символьное обозначение, определенное в файле windows.h. Приведем полный список кодов виртуальных клавиш. Те из них, которые определены в файле windows.h, имеют префикс VK_ (от слов Virtual Key).

Символическое имя Код виртуальной клавиши Клавиша, которой соответствует данный код Клавиша на клавиатуре IBM PC
Не определено 0x0  
VK_LBUTTON 0x1 Левая клавиша мыши  
VK_RBUTTON 0x2 Правая клавиша мыши  
VK_CANCEL 0x3 <Control + Break> <Control + Break>
VK_MBUTTON 0x4 Средняя клавиша мыши  
Не определено 0x5 - 0x7 Не определено  
VK_BACK 0x8 Клавиша забоя Клавиша забоя <Backspace>
VK_TAB 0x9 Клавиша табулятора <Tab>
Не определено 0xa - 0xb Не определено  
VK_CLEAR 0xc CLEAR Соответствует клавише <5> дополнительной клавиатуры при выключенном режиме <Num Lock>
VK_RETURN 0xd RETURN <Enter>
Не определено 0xe - 0xf Не определено  
VK_SHIFT 0x10 SHIFT <Shift>
VK_CONTROL 0x11 CONTROL <Control>
VK_MENU 0x12 MENU <Alt>
VK_PAUSE 0x13 PAUSE <Pause>
VK_CAPITAL 0x14 CAPITAL <Caps Lock>
Не определено 0x15 - 0x19 Зарезервировано для систем Kanji  
Не определено 0x1a Не определено  
VK_ESCAPE 1b ESCAPE <Esc>
Не определено 0x1c - 0x1f Не определено  
VK_SPACE 0x20 Клавиша пробела SPACEBAR Клавиша пробела
VK_PRIOR 0x21 PAGE UP <PgUp>
VK_NEXT 0x22 PAGE DOWN <PgDn>
VK_END 0x23 END <End>
VK_HOME 0x24 HOME <Home>
VK_LEFT 0x25 Перемещение курсора влево LEFT ARROW Клавиша перемещения курсора влево <Left>
VK_UP 0x26 Перемещение курсора вверх UP ARROW Клавиша перемещения курсора вверх <Up>
VK_RIGHT 0x27 Перемещение курсора вправо RIGHT ARROW Клавиша перемещения курсора вправо <Right>
VK_DOWN 0x28 Перемещение курсора вниз DOWN ARROW Клавиша перемещения курсора вниз <Down>
VK_SELECT 0x29 SELECT  
VK_PRINT 0x2a Зависит от изготовителя клавиатуры  
VK_EXECUTE 0x2b EXECUTE  
VK_SNAPSHOT 0x2c PRINTSCREEN <PrtSc>
VK_INSERT 0x2d INSERT <Insert>
VK_DELETE 0x2e DELETE <Delete>
VK_HELP 0x2f HELP  
Не определено 0x30 0 <0>
Не определено 0x31 1 <1>
Не определено 0x32 2 <2>
Не определено 0x33 3 <3>
Не определено 0x34 4 <4>
Не определено 0x35 5 <5>
Не определено 0x36 6 <6>
Не определено 0x37 7 <7>
Не определено 0x38 8 <8>
Не определено 0x39 9 <9>
Не определено 0x3a - 0x40 Не определено  
Не определено 0x41 A <A>
Не определено 0x42 B <B>
Не определено 0x43 C <C>
Не определено 0x44 D <D>
Не определено 0x45 E <E>
Не определено 0x46 F <F>
Не определено 0x47 G <G>
Не определено 0x48 H <H>
Не определено 0x49 I <I>
Не определено 0x4a J <J>
Не определено 0x4b K <K>
Не определено 0x4c L <L>
Не определено 0x4d M <M>
Не определено 0x4e N <N>
Не определено 0x4f O <O>
Не определено 0x50 P <P>
Не определено 0x51 Q <Q>
Не определено 0x52 R <R>
Не определено 0x53 S <S>
Не определено 0x54 T <T>
Не определено 0x55 U <U>
Не определено 0x56 V <V>
Не определено 0x57 W <W>
Не определено 0x58 X <X>
Не определено 0x59 Y <Y>
Не определено 0x5a Z <Z>
Не определено 0x5b - 0x5f Не определено  
VK_NUMPAD0 0x60 0 на цифровой клавиатуре <0> на цифровой клавиатуре
VK_NUMPAD1 0x61 1 на цифровой клавиатуре <1> на цифровой клавиатуре
VK_NUMPAD2 0x62 2 на цифровой клавиатуре <2> на цифровой клавиатуре
VK_NUMPAD3 0x63 3 на цифровой клавиатуре <3> на цифровой клавиатуре
VK_NUMPAD4 0x64 4 на цифровой клавиатуре <4> на цифровой клавиатуре
VK_NUMPAD5 0x65 5 на цифровой клавиатуре <5> на цифровой клавиатуре
VK_NUMPAD6 0x66 6 на цифровой клавиатуре <6> на цифровой клавиатуре
VK_NUMPAD7 0x67 7 на цифровой клавиатуре <7> на цифровой клавиатуре
VK_NUMPAD8 0x68 8 на цифровой клавиатуре <8> на цифровой клавиатуре
VK_NUMPAD9 0x69 9 на цифровой клавиатуре <9> на цифровой клавиатуре
VK_MULTIPLAY 0x6a Клавиша умножения <*> на цифровой клавиатуре
VK_ADD 0x6b Клавиша сложения <+> на цифровой клавиатуре
VK_SEPARATOR 0x6c Клавиша разделения  
VK_SUBTRACT 0x6d Клавиша вычитания <-> на цифровой клавиатуре
VK_DECIMAL 0x6e Клавиша десятичной точки <.> на цифровой клавиатуре
VK_DIVIDE 0x6f Клавиша деления </> на цифровой клавиатуре
VK_F1 0x70 F1 <F1>
VK_F2 0x71 F2 <F2>
VK_F3 0x72 F3 <F3>
VK_F4 0x73 F4 <F4>
VK_F5 0x74 F5 <F5>
VK_F6 0x75 F6 <F6>
VK_F7 0x76 F7 <F7>
VK_F8 0x77 F8 <F8>
VK_F9 0x78 F9 <F9>
VK_F10 0x79 F10 <F10>
VK_F11 0x7a F11 <F11>
VK_F12 0x7b F12 <F12>
VK_F13 0x7c F13  
VK_F14 0x7d F14  
VK_F15 0x7e F15  
VK_F16 0x7f F16  
Не определено 0x80 - 0x87 Зависит от изготовителя клавиатуры  
Не определено 0x88 - 0x8f Не определено  
VK_NUMLOCK 0x90 NUM LOCK <Num Lock>
VK_SCROLL 0x91 SCROLL LOCK <Scroll Lock>
Не определено 0x92 - 0xb9 Не определено  
Не определено 0xba Клавиша знака пунктуации ;
Не определено 0xbb Плюс + =
Не определено 0xbc Запятая , <
Не определено 0xbd Минус - _
Не определено 0xbe Точка . >
Не определено 0xbf Клавиша знака пунктуации / ?
Не определено 0xc0 Клавиша знака пунктуации ` ~
Не определено 0xc1 - 0xda Не определено  
Не определено 0xdb Клавиша знака пунктуации [ {
Не определено 0xdc Клавиша знака пунктуации \ |
Не определено 0xdd Клавиша знака пунктуации ] }
Не определено 0xde Клавиша знака пунктуации ' "
Не определено 0xdf Клавиша знака пунктуации  
Не определено 0xe0 - 0xe1 Зависит от изготовителя клавиатуры  
Не определено 0xe2 Знак неравенства  
Не определено 0xe3 - 0xe4 Зависит от изготовителя клавиатуры  
Не определено 0xe5 Не определено  
Не определено 0xe6 Зависит от изготовителя клавиатуры  
Не определено 0xe7 - 0xe8 Не определено  
Не определено 0xe9 - 0xf5 Зависит от изготовителя клавиатуры  
Не определено 0xf6 - 0xff Не определено  
<


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



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