Система делает различие между системными и несистемными нажатиями клавиш. Системные нажатия клавиш производят системные сообщения WM_SYSKEYDOWN и WM_SYSKEYUP. Несистемные нажатия клавиш производят несистемные сообщения WM_KEYDOWN и WM_KEYUP.
Если ваша оконная процедура должна обработать сообщение системного нажатия клавиши, удостоверьтесь, что после обработки сообщения процедура перешлет его в функцию DefWindowProc. Иначе, все системные операции, включающие клавишу ALT, будут заблокированы всякий раз, когда окно получает фокус клавиатуры. То есть пользователь не будет получать возможности обратиться к меню окна или Системному меню, или использовать комбинацию клавиш ALT+ESC или ALT+TAB, чтобы активизировать другое окно.
Сообщения о системном нажатии клавиши используются главным образом операционной системой, а не прикладной программой. Система использует их, чтобы предоставить свой встроенный интерфейс клавиатуры для меню и дать возможность пользователю управлять окном, которое является активным. Сообщения о системном нажатии клавиши создаются тогда, когда пользователь использует клавишу в комбинации с клавишей ALT, или когда пользователь вводит с клавиатуры, а ни у какого окна нет фокуса клавиатуры (например, когда активная прикладная программа свернута). В этом случае, сообщения вставляются в очередь сообщений, связанную с активным окном.
Сообщение о несистемном нажатии клавиши предназначены для использования окнами прикладной программы; функция DefWindowProc с ними не делает ничего. Оконная процедура может сбрасывать любые несистемные сообщения нажатия клавиши, которые ей не нужны.