Win32 API. Работа с клавиатурой
Страница 14. Обработка сообщений о нажатии клавиши


 

Обработка сообщений о нажатии клавиши

Оконная процедура окна, которое имеет фокус клавиатуры, принимает сообщения о нажатии клавиши, когда пользователь печатает на клавиатуре. Сообщения о нажатии клавиши - WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN и WM_SYSKEYUP. Типичная оконная процедура игнорирует все сообщения о нажатии клавиши кроме WM_KEYDOWN. Windows посылает сообщение WM_KEYDOWN, когда пользователь нажимает клавишу.

Когда оконная процедура принимает сообщение WM_KEYDOWN, она должна проверить код виртуальной клавиши, который сопровождает сообщение, чтобы установить, как обработать нажатие клавиши. Код виртуальной клавиши находится в параметре wParam сообщения. Как правило, приложение обрабатывает только нажатия клавиши, сгенерированные не символьными клавишами, включая функциональные клавиши, клавиши управления курсором, и клавиши специального назначения типа INS, DEL, HOME и END.

Следующий пример показывает общую схему оконной процедуры, которую использует типичная прикладная программа, чтобы принимать и обрабатывать сообщения о нажатии клавиши.

case WM_KEYDOWN:
switch (wParam) {
case VK_LEFT:
.
. /* Обрабатывает клавишу LEFT ARROW (Стрелка влево). */
.

break;

case VK_RIGHT:
.
. /* Обрабатывает клавишу RIGHT ARROW (Стрелка вправо). */
.

break;

case VK_UP:
.
. /* Обрабатывает клавишу UP ARROW (Стрелка вверх). */
.

break;

case VK_DOWN:
.
. /* Обрабатывает клавишу DOWN ARROW (Стрелка вниз). */
.

break;

case VK_HOME:
.
. /* Обрабатывает клавишу HOME. */
.

break;

case VK_END:
.
. /* Обрабатывает клавишу END. */
.

break;

case VK_INSERT:
.
. /* Обрабатывает клавишу INS. */
.

break;

case VK_DELETE:
.
. /* Обрабатывает клавишу DEL. */
.

break;

case VK_F2:
.
. /* Обрабатывает клавишу F2. */
.

break;

.
. /* Обрабатывает другие не символьные нажатия клавиш. */
.

default:
break;
}

 

 
« Предыдущая статья   Следующая статья »