Страница 99 из 238
CMenu
Класс
CMenu используется для работы с дескрипторами
HMENU Windows. Он содержит функции для создания, отслеживания, обновления и уничтожения меню. Объект класса
CMenu следует локально создавать в стеке. После этого необходимо вызвать функцию
CWnd::SetMenu для замены меню в окне и сразу же вызвать функцию
CMenu::Detach. Функция
CWnd::SetMenu устанавливает в окне новое меню, вызывая его перерисовку для отображения нового меню, а также передает окну права собственности на меню. Функция
Detach освобождает дескриптор
HMENU из объекта класса
CMenu, так что, при уничтожении данного объекта класса
CMenu деструктор не попытается уничтожить меню, на которое он уже не имеет права собственности. Само меню уничтожается деструктором окна при его закрытии. Функция
LoadMenuIndirect создает меню по шаблону, хранящемуся в памяти, однако, с меню, созданным функцией
LoadMenu с использованием ресурсов, намного проще работать, а ресурсы меню могут создаваться и изменяться в редакторе меню. Описание данного класса содержится в файле заголовка afxwin.h.