Страница 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; } |