afx_msg void OnChar( UINT nChar, UINT nRepCnt, UINT nFlags );
Параметры
nChar
Содержит символьное значение кода клавиши.
nRepCnt
Содержит повторный счет, число раз, сколько нажатие клавиши повторено, когда пользователь удерживает клавишу.
nFlags
Содержит скэн-код, код перехода клавиши, предыдущее состояние клавиши, и контекстный код, как показано в следующем списке:
0-15 Определяет повторный счет. Значение - число раз, сколько нажатие клавиши повторено в результате удерживания клавиши пользователем. 16-23 Определяет скэн-код. Значение зависит от первоначального изготовителя оборудования (OEM) 24 Определяет, является ли клавиша расширенной клавишей, типа правых клавиш ALT и CTRL, которые появляются на расширенной с 101 или 102 клавишами клавиатуре. Значение 1, если это - расширенная клавиша, иначе 0. 25-28 Внутренне использование Windows. 29 Определяет контекстный код. Значение 1, если клавиша ALT нажата в то же время как и клавиша нажата, иначе 0. 30 Определяет предыдущее состояние клавиши. Значение 1 если клавиша нажата прежде, чем сообщение послано, или 0 если клавиша вверху. 31 Определяет состояние перехода. Значение 1, если клавиша отпускается или 0 если клавиша нажимается.
Замечания
Рамка вызывает эту функцию, когда нажатие клавиши транслирует к несистемному символу. Эта функция вызвана перед OnKeyUp функцией и после того, как OnKeyDown функция вызвана. OnChar содержит значение клавиши клавиатуры, нажимаемой или отпущенной.
Потому что не имеется, обязательно взаимно-однозначного соответствие между нажатыми клавишами и сгенерированными обращениями OnChar, информация в nFlags вообще не полезна для прикладных программ. Информация в nFlags применяется только к самому современному обращению к OnKeyUp или OnKeyDown функции, которая предшествует обращению к OnChar.
Для IBM Расширенной 101 и 102 клавишной клавиатур, расширенные клавиши - правый ALT и СRTL на основном разделе клавиатуры; INS, DEL, HOME, END, PAGE UP, PAGE DOWN, и клавиши курсора в кластерах влево от цифровой клавиатуры, наклонная черта вправо (/) и клавиша ENTER в цифровой клавиатуре. Некоторые другие клавиатуры могут поддерживать бит расширяемой - клавиши в nFlags.
Эта функция вызвана рамкой, чтобы позволить Вашей прикладной программе обрабатывать сообщение Windows. Параметры, переданные к Вашей функции отражают параметры, полученные рамкой, когда сообщение было получено. Если Вы вызываете реализацию базового класса этой функции, та реализация использует параметры, первоначально переданные с сообщением и не параметры, которые Вы обеспечиваете функции.