Win32 API. Функции и сообщения ввода информации с клавиатуры - Функция GetKeyNameText

ОГЛАВЛЕНИЕ

Функция GetKeyNameText

(ПолучитьТекстИмениКлавиши)

Функция GetKeyNameText извлекает строку, которая представляет название клавиши.

Синтаксис

int GetKeyNameText(
LONG lParam, // второй параметр сообщения клавиатуры
LPTSTR lpString, // адрес буфера с именем клавиши
int nSize // максимальная длина строки с именем клавиши
);

Параметры
lParam
Определяет второй параметр сообщения клавиатуры (типа WM_KEYDOWN) для обработки. Функция интерпретирует следующие части lParam (Бит-Предназначение):

  • 16-23 - Скэн-код.
  • 24 - Флажок дополнительной клавиши. Дает отличительный признак для некоторых клавиш расширенной клавиатуры.
  • 25 - Бит " Безразличное состояние ". Прикладная программа, вызывающая эту функцию устанавливает этот бит, чтобы указать, что функция не должна различать, например, между левыми и правыми клавишами CTRL и SHIFT.

lpString
Указывает на буфер, который примет название клавиши.
nSize
Определяет максимальную длину, в символах, названия клавиши, включая символ завершения строки (нуль-терминатор). (Этот параметр должен быть равен размеру буфера, указанного параметром lpString.)

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

Замечания
Формат строки с названием клавиши зависит от текущей раскладки символов на клавиатуре. Драйвер клавиатуры поддерживает список названий в форме символьных строк для клавиш с названиями длиннее, чем один символ. Название клавиши транслируется в соответствии с текущей раскладкой установленной клавиатуры. Названием символьных клавиш является сам символ, обозначающий её. Названия мертвых клавиш вполне обстоятельно разъяснены.

Размещение и совместимость GetKeyNameText

Windows NT				Да 
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode WinNT
Замечания по платформе Не имеется