Окно получает это сообщение, когда пользователь выбирает команду из меню «Окно» (ранее известное как системное или управляющее меню) или когда пользователь выбирает кнопку «Развернуть», «Свернуть», «Восстановить» или «Закрыть».
Эти WM_SYSCOMMAND (максимизировать, свернуть, восстановить, закрыть и те, которые находятся в системном меню) могут быть отправлены в ваше окно, когда пользователь использует системное меню или кнопки титров. Я считаю (мой Win32 очень ржавый) они обычно обрабатываются DefWindowProc, который выполняет всю грязную работу и затем отправляет уведомление в ваше окно (WM_SIZE / WM_SIZING, WM_CLOSE и т. Д.).
Теперь еще дальше (спрятано в пятне внизу):
Приложение может выполнить любую системную команду в любое время, передав сообщение WM_SYSCOMMAND в DefWindowProc. Любые сообщения WM_SYSCOMMAND, не обработанные приложением, должны быть переданы в DefWindowProc.
Вы также можете выполнить определенный WM_SYSCOMMAND, отправив его в DefWindowProc. К ним относятся упомянутые выше, но они также включают дополнительные, такие как SC_SCREENSAVE и SC_TASKLIST. Я понятия не имею, какой путь через DefWindowProc будет использовать что-то вроде SC_SCREENSAVE, чтобы в конечном итоге вызвать экранную заставку, но это так.
Так что, как я понимаю, весь класс WM_SYSCOMMANDs является системными командами. Просто некоторые из них (доступные из заголовка окна) отправляются в окно, а другие отправляются окном на ваше усмотрение.