Работа с клавиатурой
Страница 2. Обработка нажатия клавиш



Обработка нажатия клавиш

 

При нажатии клавиш на клавиатуре в окно (а точнее в оконную процедуру), которое имеет фокус поступают сообщения 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;
}

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