Страница 10 из 17 Состояние клавиши В ходе обработки сообщения клавиатуры, у прикладной программы возникает необходимость установить состояние другой клавиши кроме той, для которой сгенерировано текущее сообщение. Например, прикладная программа обработки текстов (текстовый процессор), которая позволяет пользователю нажимать SHIFT+END, чтобы выбрать блок текста, должна проверять состояние клавиши SHIFT всякий раз, когда она принимает сообщение о нажатии от клавиши END. Прикладная программа может использовать функцию GetKeyState, чтобы установить, было ли сгенерировано состояние виртуальной клавиши во время текущего сообщения; она может использовать функцию GetAsyncKeyState, чтобы получить данные о текущем состоянии виртуальной клавиши. Раскладка символов на клавиатуре сохраняет список названий. Название клавиши, которая создает отдельный символ то же самое, что и символ, созданный клавишей. Название не символьной клавиши типа TAB и ENTER сохраняется как строка символов. Прикладная программа может извлекать данные о названии любой клавиши из драйвера устройства путем вызова функции GetKeyNameText. Трансляции нажатия клавиши и символьной клавиши Windows включает в себя несколько специальных функций, назначение которых, перевод скэн-кодов, кодов букв и кодов виртуальной клавиши при помощи предоставления различных сообщений о нажатии клавиши. Эти функции включают в себя MapVirtualKey, ToAscii, ToUnicode и VkKeyScan. |