Работа с клавиатурой - Обработка нажатия клавиш
ОГЛАВЛЕНИЕ
Страница 2 из 6
Обработка нажатия клавиш
При нажатии клавиш на клавиатуре в окно (а точнее в оконную процедуру), которое имеет фокус поступают сообщения WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, и WM_SYSKEYUP. Основное сообщение, которое система отправляет окну при нажатии клавиши - WM_KEYDOWN.
При поступлении сообщения WM_KEYDOWN, оконная процедура должна проверить виртуальный код (который содержится в параметре wParam сообщения) и решить что дальше с ним делать. Обычно приложения обрабатывают только функциональные клавиши, стрелки, а так же специальные клавиши, такие как INS, DEL, HOME, и END, то есть все клавиши кроме букв и цифр.
Следующий пример демонстрирует работу обычной оконной процедуры, получающей и обрабатывающей нажатия клавиш:
case WM_KEYDOWN:
switch (wParam)
{
case VK_LEFT:
// Нажата стрелка влево.
break;
case VK_RIGHT:
// Нажата стрелка враво.
break;
case VK_UP:
// Нажата стрелка вверх.
break;
case VK_DOWN:
// Нажата стрелка вниз.
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;
}