afx_msg void OnKeyDown( UINT nChar, UINT nRepCnt, UINT nFlags );
Параметры
nChar
Определяет код с виртуальной клавишей данной клавиши.
nRepCnt
Содержит повторный счет, число раз, сколько нажатие клавиши повторено, когда пользователь удерживает клавишу.
nFlags
Определяет скэн-код, код перехода клавиши, предыдущее состояние клавиши и контекстный код, как показано в следующем списке:
0-7 Скэн-код (значение OEM зависимый). Младший байт старшего слова. 8 Расширенная клавиша типа функциональной клавиши или клавиши на цифровой клавиатуре (1 если это - расширенная клавиша, иначе 0). 9-10 Не используеться. 11-12 Для внутреннего использования Windows. 13 Контекстный код (1 если клавиша ALT нажата в то время как нажата клавиша, иначе 0). 14 Предыдущее состояние клавиши (1 если клавиша внизу перед обращением, 0 если клавиша вверху). 15 Состояние Перехода (1 если клавиша отпускается, 0 если клавиша нажимается).
Для WM_KEYDOWN сообщения, бит перехода клавиши (бит 15) - 0, и бит контекстного кода (бит 13) - 0.
Замечания
Рамка вызывает эту функцию, когда несистемная клавиша нажата. Несистемная клавиша - клавиша клавиатуры, которая нажата, когда клавиша ALT не нажата или нажата клавиша когда CWnd имеет фокус ввода.
Из-за авто повторения, больше чем одино OnKeyDown обращение может происходить прежде, чем OnKeyUp обращение к функции будет сделано. Бит, который указывает предыдущее состояние клавиши, может использоваться, чтобы определить, является ли обращение OnKeyDown первым обращением или повторением.
Для IBM Расширенной 101 и 102 клавишной клавиатур, расширенные клавиши - правый ALT и СRTL на основном разделе клавиатуры; INS, DEL, HOME, END, PAGE UP, PAGE DOWN, и клавиши курсора в кластерах влево от цифровой клавиатуры, наклонная черта вправо (/) и клавиша ENTER в цифровой клавиатуре. Некоторые другие клавиатуры могут поддерживать бит расширяемой клавиши в nFlags.
Эта функция вызвана рамкой, чтобы позволить Вашей прикладной программе обрабатывать сообщение Windows. Параметры, переданные к Вашей функции отражают параметры, полученные рамкой, когда сообщение было получено. Если Вы вызываете реализацию базового класса этой функции, та реализация использует параметры, первоначально переданные с сообщением и не параметры, которые Вы обеспечиваете функции.