10.5 - Системные и несистемные нажатия клавиш

Windows делает различие между системными и несистемными нажатиями клавиш. Системные нажатия клавиш производят системные сообщения WM_SYSKEYDOWN и WM_SYSKEYUP. Несистемные нажатия клавиш производят несистемные сообщения WM_KEYDOWN и WM_KEYUP.

Если ваша оконная процедура должна обработать сообщение системного нажатия клавиши, удостоверьтесь, что после обработки сообщения процедура посылает его в функцию DefWindowProc. Иначе, все системные действия, включающие клавишу ALT, будут заблокированы всякий раз, когда окно получает фокус клавиатуры. То есть пользователь не будет получать возможности обратиться к меню окна или Системному меню, или использовать комбинацию клавиш ALT+ESC или ALT+TAB, чтобы активизировать другое окно.

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

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


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Владимир Соковиков.