Страница 37 из 45
Сообщение WM_KEYDOWN Сообщение WM_KEYDOWN посылается окну с фокусом клавиатуры тогда, когда нажата несистемная клавиша. Несистемная клавиша является клавишей, которая нажимается, когда клавиша ALT не нажата. Синтаксис WM_KEYDOWN nVirtKey = (int) wParam;// код виртуальной клавиши lKeyData = lParam;// данные на клавишу Параметры nVirtKey Значение wParam. Определяет код виртуальной клавиши для несистемной клавиши. lKeyData Значение lParam. Определяет счет повторений, скэн-код, флажок дополнительной клавиши, контекстный код, флажок предыдущего состояния клавиши и флажок переходного состояния, как показано в следующем списке: - 0-15 - Определяет счет повторений. Значение равно числу повторений нажатия клавиши в результате того, что пользователь удерживает клавишу нажатой.
- 16-23 - Определяет скэн-код. Значение зависит от фирмы - изготовителя комплектного оборудования (OEM).
- 24 - Определяет, является ли клавиша дополнительной клавишей, типа правосторонних клавиш ALT и CTRL, которые появляются на усовершенствованной 101- или 102-клавишной клавиатуре. Значение равно 1, если это дополнительная клавиша; иначе, оно равно 0.
- 25-28 - Зарезервировано; не используется.
- 29 - Определяет контекстный код. Для сообщения WM_KEYDOWN это значение всегда 0.
- 30 - Определяет предыдущее состояние клавиши. Значение равно 1, если клавиша была нажата перед посылкой сообщения или оно равно 0, если клавиша была не нажата.
- 31 - Определяет переходное состояние. Для сообщения WM_KEYDOWN это значение всегда 0.
Возвращаемые значения Прикладная программа должна возвратить нуль, если она обрабатывает это сообщение. Действие по умолчанию Если нажата клавиша F10, функция DefWindowProc устанавливает внутренний флажок. Когда DefWindowProc принимает сообщение WM_KEYUP, функция проверяет, установлен ли внутренний флажок и, если это так, посылает сообщение WM_SYSCOMMAND окну верхнего уровня. Параметр wParam сообщения устанавливается в SC_KEYMENU. Замечания Благодаря функции автоповтора, до посылки сообщения WM_KEYUP может быть послано больше чем одно сообщение WM_KEYDOWN. Предыдущее состояние клавиши (бит 30) может быть использовано, чтобы установить, указывает ли сообщение WM_KEYDOWN первое нажатие или повторное нажатие. Для усовершенствованных 101- и 102-клавишных клавиатур, дополнительными клавишами являются правая ALT и правая CTRL в основной части клавиатуры; INS, DEL, HOME, END, PAGE UP, PAGE DOWN и клавиши курсора в группах слева от цифровой клавиатуры; и делитель (/) и клавиши ENTER в цифровой клавиатуре. Некоторые другие клавиатуры могут поддерживать бит дополнительной клавиши в параметре lKeyData. Смотри также DefWindowProc, WM_CHAR, WM_KEYUP, WM_SYSCOMMAND Размещение и совместимость WM_KEYDOWN Windows NTДа Win95Да Win32sДа Импортируемая библиотека- Заголовочный файлwinuser.h UnicodeНет Замечания по платформеНе имеется |