Для управления меню, как и для других элементов пользовательского интерфейса, в состав библиотеки MFC включен специальный класс - класс CMenu. Класс CMenu является достаточно “незаметным” классом библиотеки MFC. Приложение может активно работать с меню, но все же в его исходных текстах можно не найти ни одного объекта этого класса.
В приложениях, созданных с помощью MFC AppWizard, меню создается автоматически вместе с панелью управления и панелью состояния. Для этого достаточно указать при создании шаблона документа общий идентификатор этих ресурсов, например:
CMultiDocTemplate* pDocTemplate; // указатель на шаблон pDocTemplate = new CMultiDocTemplate // создание шаблона (IDR_MULTITYPE, RUNTIME_CLASS(CMultiDoc), RUNTIME_CLASS(CChildFrame), RUNTIME_CLASS(CMultiView)); AddDocTemplate(pDocTemplate); // добавить шаблон в списокВ случае многооконного приложения дополнительно указываются ресурсы, используемые, когда все окна просмотра документов закрыты. Все эти ресурсы имеют один и тот же идентификатор, например:
CMainFrame* pMainFrame = new CMainFrame; // создание главного окна if (!pMainFrame->LoadFrame(IDR_MAINFRAME)) // загрузка ресурсов return FALSE; m_pMainWnd = pMainFrame; // соединение главного окна и объекта приложенияВ приложениях MFC AppWizard, имеющих однооконный или многооконный интерфейс, меню создается и изменяется самой библиотекой MFC. Несмотря на это, программист может сам управлять меню. Самым простым способом является обработка команд обновления от меню (см. ниже описание класса CCmdUI).
|
|
Если приложение создано без использования средств AppWizard, то даже в этом случае процедура создания меню остается очень простой и также может не задействовать объекты класса CMenu напрямую.
В таких приложениях обычно формируется главное окно на основе класса CFrameWnd. Для этого сначала создается объект класса CFrameWnd, а затем вызывается либо метод Create, либо метод LoadFrame, который в свою очередь уже строит само окно вместе с меню.