Визуальное программирование и MFC



         

Меню без явного создания объекта класса CMenu - часть 2


Это метод создает и инициализирует окно, связанное с объектом CFrameWnd:

BOOL Create( LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle = WS_OVERLAPPEDWINDOW, const RECT& rect = rectDefault, CWnd* pParentWnd = NULL, LPCTSTR lpszMenuName = NULL, DWORD dwExStyle = 0, CCreateContext* pContext = NULL );

Обязательно нужно указать только два первых параметра метода Create - имя класса окна (если использовать NULL, то по умолчанию будет использоваться класс, определенный для окон CFrameWnd )и имя окна (его заголовок).

Через параметр lpszMenuName можно задать имя ресурса меню, которое будет создано для данного окна. Например, вот как можно создать окно c меню, шаблон которого определен в ресурсах и имеет идентификатор IDR_MENU (создание окна производится в конструкторе класса окон CMyFrame, наследуемого от CFrameWnd):

CMyFrame::CMyFrame() { Create(NULL, "Окно с меню ",WS_OVERLAPPEDWINDOW, rectDefault,NULL,MAKEINTRESOURCE(IDR_MENU)); }

Метод LoadFrame

Виртуальный метод LoadFrame позволяет динамически создавать меню, пользуясь информацией из файла ресурсов:

virtual BOOL LoadFrame( UINT nIDResource, DWORD dwDefaultStyle= WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, CWnd* pParentWnd = NULL, CCreateContext* pContext=NULL);

Параметры этого метода почти идентичны параметрам метода Create, описанного ранее. Исключение составляет параметр nIDResource. Он представляет собой идентификатор, общий для нескольких ресурсов, употребляемых при создании окна (меню, строковый ресурс заголовка окна, пиктограмма и таблица клавиш акселерации):

CMyFrame::CMyFrame() { LoadFrame(IDR_MENU); }




Содержание  Назад  Вперед