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


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


Есть возможность определить и изменить состояние для всех клавиш одновременно.

Для определения состояния клавиш воспользуйтесь функцией GetKeyboardState:

void WINAPI GetKeyboardState (BYTE FAR* lpbKeyState);

Единственный параметр lpbKeyState этой функции - дальний указатель на массив из 256 байт. После вызова функции этот массив будет заполнен информацией о состоянии всех виртуальных клавиш в момент генерации клавиатурного сообщения. В этом смысле функция аналогична функции GetKeyState.

Для любого байта массива установленный в 1 старший бит означает, что соответствующая клавиша была нажата. Если этот бит равен 0, клавиша не была нажата. Младший бит, установленный в 1, означает, что клавиша была переключена. Если младший бит равен 0, клавиша не была переключена.

После вызова функции GetKeyboardState вы можете изменить содержимое массива и вызвать функцию SetKeyboardState, изменяющую состояние клавиатуры:

void WINAPI SetKeyboardState(BYTE FAR* lpbKeyState);

Функция GetKeyboardType позволит вам определить тип клавиатуры и количество имеющихся на ней функциональных клавиш:

int WINAPI GetKeyboardType(int fnKeybInfo);

В зависимости от значения параметра fnKeybInfo функция может возвращать различную информацию о клавиатуре.

Если задать значение параметра fnKeybInfo, равное 0, функция вернет код типа клавиатуры:

Код Тип клавиатуры Количество функциональных клавиш
1 Клавиатура IBM PC/XT или совместимая, 83-клавишная 10
2 Клавиатура Olivetti "ICO", 102-клавишная 12 (иногда 18)
3 Клавиатура IBM AT или аналогичная, 84-клавишная 10
4 Клавиатура IBM Enhanced (улучшенная), 101- или 102-клавишная 12
5 Клавиатура Nokia 1050 или аналогичная 10
6 Клавиатура Nokia 9140 или аналогичная 24
7 Японская клавиатура Зависит от аппаратуры

Если задать значение параметра, равное 1, функция вернет код подтипа клавиатуры.

И наконец, если задать значение параметра, равное 2, функция вернет количество функциональных клавиш, имеющихся на клавиатуре.




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



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