Шаг 357 - CWnd::OnKeyDown

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. Параметры, переданные к Вашей функции отражают параметры, полученные рамкой, когда сообщение было получено. Если Вы вызываете реализацию базового класса этой функции, та реализация использует параметры, первоначально переданные с сообщением и не параметры, которые Вы обеспечиваете функции.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.