Функция GetKeyNameText извлекает строку, которая представляет название клавиши.
Синтаксис
int GetKeyNameText( LONG lParam, LPTSTR lpString, int nSize ); |
Параметры
lParam
[in] Определяет второй параметр сообщения клавиатуры (типа
WM_KEYDOWN) которое обрабатывается. Функция интерпретирует ниже перечисленные позиции битов в lParam:
Биты
Предназначение
16-23
Скэн-код.
24
Флажок дополнительной клавиши. Дает отличительный признак для некоторых клавиш расширенной клавиатуры.
25
Бит " Безразличное состояние ". Прикладная программа, вызывающая эту функцию устанавливает этот бит, чтобы указать, что функция не должна различать, например, между левыми и правыми клавишами
CTRL и SHIFT.
lpString
[out] Указатель на буфер, который примет название клавиши.nSize
[in] Определяет максимальную длину, в TCHAR (символах), названия клавиши, включая символ завершения строки (нуль-терминатор). (Этот параметр должен быть равен размеру буфера, указанному параметром lpString.)Возвращаемые значения
Если функция завершается успешно, строка с символом нуля в конце копируется в заданный буфер, а величина возвращаемого значения - длина строки, в TCHAR, не считая символа завершения строки (нуль-терминатора).
Если функция завершается ошибкой, возвращаемое значение равно нулю. Чтобы получить дополнительные сведения об ошибке, вызовите GetLastError.
Замечания
Формат строки с названием клавиши зависит от текущей раскладки символов на клавиатуре. Драйвер клавиатуры поддерживает список названий в форме символьных строк для клавиш с названиями длиннее, чем один символ. Название клавиши транслируется согласно раскладке текущей установленной клавиатуры, таким образом функция может дать разные результаты для разных языков ввода данных. Названием символьных клавиш является сам символ, обозначающий её. Названия мертвых клавиш вполне обстоятельно разъяснены.
Windows 95/98/Me: GetKeyNameTextW поддерживается подпрограммой Microsoft Layer for Unicode. Чтобы использовать подпрограмму, Вы должны добавить некоторые файлы к вашему приложению, как это определено в Microsoft Layer for Unicode для систем Windows 95/98/Me.
Смотри также
Обзор Ввод данных с клавиатуры, Функции, используемые Окном, CreateWindow, CreateWindowEx, IsWindowEnabled, WM_ENABLE
Размещение и совместимость GetKeyNameText |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
User32.lib |
Заголовочный файл |
|
- объявлено в |
Winuser.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |