Отличие между обычным и системным меню: сообщения в оконной процедуре. Основные параметры сообщений, характеристики подсвеченного элемента меню. Способ размещения меню по горизонтали и вертикали. Способ выбора строк меню без указания окна-владельца.
Аннотация к работе
СООБЩЕНИЯ МЕНЮ ПРИЛОЖЕНИЙ WINDOWS При смене подсвеченного элемента меню (если, к примеру, пользователь пробегает по элементам меню с помощью клавиш со стрелками вверх и вниз) в оконную процедуру посылается сообщение WM_MENUSELECT. Когда же пользователь производит выбор (нажимает клавишу Enter, к примеру), сообщение WM_COMMAND оконной процедуре посылают только обычные элементы меню. В элементах wParam и IParam посылаемых сообщений хранится информация, достаточная для того, чтобы программа смогла определить, какие действия ей необходимо выполнить случае выбора пользователем того или иного элемента меню. В младшем слове wParam оконная процедура получает сведения о том, какой элемент стал подсвеченным. Если учесть, что макросы LOWORD () и HIWORD () выделяют соответственно младшее и старшее слово 32-битного аргумента, и назвать источник сообщения uItem, то можно записать: uItem = (UINT) LOWORD (wParam); В зависимости от обстоятельств смысл uItem различается: если подсвеченный элемент является конечным и не влечет за собой вызов popup-меню, то ultem содержит идентификатор элемента меню; если подсвеченный элемент при выборе влечет за собой вызов popup-меню, то ultem содержит номер (индекс) этого элемента в том меню, в котором оно находится; В старшем слове wParam содержатся характеристики подсвеченного элемента. Обозначив хэндл меню как hMenu, получим: hMenu = (HMENU) lParam; Параметры сообщения WM_COMMAND.