Контрольная работа: Сообщения меню приложения Windows

Итак, меню имеет строгую древовидную структуру, которая начинается с меню первого уровня (оно обычно называется главным меню программы или menubar'ом и располагается сразу под заголовком окна). К этому меню первого уровня могут быть присоединены как конечные элементы меню, так и элементы, выбор которых приводит к появлению так называемых всплывающих (popup) меню, к которым, в свою очередь, присоединяются элементы очередного уровня и т.д. Перед началом создания меню вся его структура должна быть тщательно продумана. Неплохо, если бы программист имел перед глазами графическое представление этого меню.

Для создания меню необходимо выполнить следующие действия:

Выбрать подменю самого низкого уровня, которые содержат только конечные элементы меню, и создать их с помощью функций CreateMenu () или CreatePopupMenu () в зависимости от потребностей. Эти функции возвращают хэндл созданного меню. Меню создается пустым.

Посредством функции AppendMenu () добавляем в них требуемые элементы.

Создаем меню следующего, более высокого уровня, и добавляем в них требуемые элементы и меню, созданные нами на предыдущем шаге.

Повторяем пункты 1 - 3 до тех пор, пока создание всех подменю не будет закончено.

Создаем главное меню программы посредством использования функции CreateMenu ().

Присоединяем созданные подменю самого высокого уровня к главному меню программы с помощью функции AppendMenu ().

Присоединяем меню к окну посредством использования функции SetMenu ().

Прорисовываем меню с помощью функции DrawMenuBar ().

Если в ходе программы сложилась такая ситуация, что меню оказалось не присоединенным к окну, перед выходом из программы обязательно уничтожаем его, вызывая функцию DestroyMenu () (присоединенное к окну меню уничтожается автоматически при уничтожении окна).

Формат названных API-функций выглядит следующим образом:

HMENU CreateMenu ()

Параметры: не имеются.

Возвращаемое значение: хэндл вновь созданного меню, иначе - NULL.

HMENU CreatePopupMenu ()

Параметры: не имеются.

Возвращаемое значение: хэндл вновь созданного всплывающего меню, иначе - NULL.

BOOL AppendMenu (HMENU hMenu, UINT uFlags, UINT idNewItem, LPCTSTR lpszNewItem)

Параметры:

hMenu - хэндл того меню, в которое добавляется новый пункт.

uFlags - комбинация битовых флагов, определяющих внешний вид и поведение добавляемого меню. Начинаются с префикса MF_.

idNewItem - идентификатор для нового пункта меню либо хэндл добавляемого всплывающего меню (зависит от флага MF_POPUP, того, установленного во втором параметре).

lpszNewItem- содержимое нового пункта меню. Зависит от установленных флагов uFlags. Установлен флаг MF_BITMAP - параметр содержит хэндл bitmap'а. Установлен флаг MF_STRING - параметр содержит указатель на строку символов и т.д.

Возвращаемое значение: при успешном выполнении - TRUE, иначе - FALSE.

BOOL SetMenu (HWND hWnd, HMENU hMenu)

Параметры:

hWnd - хэндл окна, для которого нужно закрепить меню.

hMenu - хэндл добавляемого меню.

К-во Просмотров: 264
Бесплатно скачать Контрольная работа: Сообщения меню приложения Windows