9.9.3.7 - Сообщение WM_SYSCOMMAND

Окно получает это сообщение, когда пользователь выбирает команду из меню окна (известное также как Системное меню или Меню управления) или когда пользователь выбирает кнопку Развернуть (Maximize) или кнопку Свернуть (Minimize).

Синтаксис

WM_SYSCOMMAND
uCmdType = wParam;        		// затребованный тип системной команды
xPos = LOWORD(lParam); 		// горизонтальная позиция, в экранных координатах
yPos = HIWORD(lParam); 		// вертикальная позиция, в экранных координатах

Параметры
uCmdType
Определяет тип запрошенной системной команды. Он может быть одним из этих значений:

xPos
Определяет горизонтальную позицию курсора, в экранной системе координат, если команда меню окна выбрана при помощи мыши. Иначе, xPos параметр не используется.
yPos
Определяет вертикальную позицию курсора, в экранной системе координат, если команда меню окна выбрана при помощи мыши. Этот параметр является – (минус) 1, если команда выбрана, с использованием клавиши - ускорителя системы, или нуль, если использовалась мнемоника.

Возвращаемые значения
Прикладная программа должна возвратить нуль, если она обрабатывает это сообщение.

Замечания
Функция DefWindowProc завершает запрос меню окна о предопределенных действиях, перечисленных в предыдущей таблице.
В сообщениях WM_SYSCOMMAND, четыре младших бита параметра uCmdType используются для внутренних потребностей Windows. Чтобы получить правильный результат при проверке значения uCmdType, прикладная программа должна объединить значение 0xFFF0 со значением uCmdType при помощи использования побитового оператора AND.
Пункты в меню окна могут быть изменены при помощи использования функций GetSystemMenu, AppendMenu, InsertMenu, ModifyMenu, InsertMenuItem и SetMenuItem. Прикладные программы, которые изменяют меню окна, должны обрабатывать сообщения WM_SYSCOMMAND.
Прикладная программа может выполнить любую команду системы в любое время, передавая сообщение WM_SYSCOMMAND в DefWindowProc. Любые сообщения WM_SYSCOMMAND, не обработанные программой должны быть переданы в DefWindowProc. Любые значения команд, добавленные приложением, должны быть обработаны прикладной программой и не могут быть переданы в DefWindowProc.
Клавиши-ускорители, которые определены для выбора пунктов из меню окна, транслируются в сообщения WM_SYSCOMMAND; все другие нажатия клавиш - ускорителей транслируются в сообщения WM_COMMAND.

Смотри также
AppendMenu, DefWindowProc, GetSystemMenu, InsertMenu, ModifyMenu, WM_COMMAND

Размещение и совместимость WM_SYSCOMMAND

Windows NT			Да 
Win95				Да 
Win32s				Да 
Импортируемая библиотека		- 
Заголовочный файл			winuser.h 
Unicode				Нет 
Замечания по платформе		Не имеется

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