Читать контрольная по информатике, вычислительной технике, телекоммуникациям: "Сообщения меню приложения Windows" Страница 1

назад (Назад)скачать (Cкачать работу)

Функция "чтения" служит для ознакомления с работой. Разметка, таблицы и картинки документа могут отображаться неверно или не в полном объёме!

СООБЩЕНИЯ МЕНЮ ПРИЛОЖЕНИЙ WINDOWS

При смене подсвеченного элемента меню (если, к примеру, пользователь "пробегает" по элементам меню с помощью клавиш со стрелками вверх и вниз) в оконную процедуру посылается сообщение WM_MENUSELECT. Это сообщение посылают все элементы меню.Когда же пользователь производит выбор (нажимает клавишу "Enter", к примеру), сообщение WM_COMMAND оконной процедуре посылают только обычные элементы меню. Запрещенные и "серые" элементы меню в этом случае никаких сообщений не посылают.В элементах wParam и IParam посылаемых сообщений хранится информация, достаточная для того, чтобы программа смогла определить, какие действия ей необходимо выполнить случае выбора пользователем того или иного элемента меню.Помимо обычного меню у окна в большинстве случаев есть еще и системное меню. Сказанное относится и к системному меню. Отличие между обычным меню и системным состоит в том, что оконной процедуре посылаются сообщения WM_SYSMENUSELECT и WM_SYSCOMMAND. Кроме этого, сообщения WM_SYSCOMMAND оконная процедура получает и в случае нажатия кнопок минимизации, максимизации и закрытия окна, которые находятся не в системном меню, а в правом углу заголовка окна.Параметры сообщения WM_MENUSELECT. В младшем слове wParam оконная процедура получает сведения о том, какой элемент стал подсвеченным. Если учесть, что макросы LOWORD () и HIWORD () выделяют соответственно младшее и старшее слово 32-битного аргумента, и назвать источник сообщения uItem, то можно записать:uItem = (UINT) LOWORD (wParam);В зависимости от обстоятельств смысл uItem различается:если подсвеченный элемент является конечным и не влечет за собой вызов popup-меню, то ultem содержит идентификатор элемента меню;если подсвеченный элемент при выборе влечет за собой вызов popup-меню, то ultem содержит номер (индекс) этого элемента в том меню, в котором оно находится;В старшем слове wParam содержатся характеристики подсвеченного элемента. Аналогично предыдущему,fuFlags = (UINT) HIWORD (wParam).Возможные значения fuFlags характеризуются идентификаторами, начинающимися с MF_ (табл.1).Таблица 1Характеристики подсвеченного элемента меню

Флаг

Описание

MF_BITMAP

Вместостроки в качествеэлемента менюприменяетсяbitmap

MF_CHECKED

Элементотмечаемый(со "значком")

MF_DISABLED

Элементзапрещен

MF_GRAYED

Элементзапрещен иотображаетсясерым цветом

MF_HILITE

Элементподсвечен

MF_MOUSESELECT

Элементвыбран мышью

MF_OWNERDRAW

Запрорисовкуэлементаотвечает несистема, апрограмма

MF_POPUP

Элементвызываетпоявлениерорир-менюболее низкогоуровня

MF_SYSMENU

Элементиз системногоменю

lParam содержит в себе хэндл того меню, которому принадлежит подсвеченный элемент. Обозначив хэндл меню как hMenu, получим:hMenu = (HMENU) lParam;Параметры сообщения WM_COMMAND. Как и в случае с WM_SELECTMENU, младшее слово wParam содержит сведения об источнике сообщения. Так как сообщение WM_COMMAND посылается только конечными элементами меню, то в младшем слове wParam содержится идентификатор выбранного элемента меню:wID = LOWORD (wParam);Старшее слово wParam указывает, от какого управляющего элемента пришло сообщение. Если сообщение пришло от меню, то это слово равно


Интересная статья: Быстрое написание курсовой работы