Microsoft Visual C++ и MFC. Программирование для Win95 и WinNT

Метод Create


Метод Create создает и инициализирует окно, связанное с объектом CFrameWnd. В случае успешного завершения метод Create возвращает ненулевое значение, а в противном случае - ноль:

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. Первый параметр lpszClassName служит для задания класса окна. В качестве него можно также указать значение NULL, тогда по умолчанию будет использован класс, определенный для окон CFrameWnd. Второй параметр lpszWindowName указывает имя окна - оно будет отображаться в заголовке окна.

Остальные параметры метода необязательные. Если их не указать, будут использованы значения, принятые по умолчанию. Нас, однако, сейчас интересует только параметр lpszMenuName. Через него вы можете указать имя ресурса меню, которое будет создано для данного окна. По умолчанию редактор ресурсов Microsoft Visual C++ присваивает созданным в нем ресурсам, в том числе меню, числовые идентификаторы. Чтобы получить из такого идентификатора значение, совместимое по типу с параметром lpszMenuName, следует использовать макрокоманду MAKEINTRESOURCE.

Следующий пример показывает, как можно создать окно с меню:

CMultiMenuWindow::CMultiMenuWindow()

{

   // Создаем окно приложения, соответствующее

   // данному объекту класса CMultiMenuWindow

   Create(NULL, "Multi Menu Sample", WS_OVERLAPPEDWINDOW,

      rectDefault, NULL, MAKEINTRESOURCE(IDR_MENU));

}

Класс CMultiMenuWindow, конструктор которого представлен выше, наследован от базового класса CFrameWnd. Конструктор CMultiMenuWindow создает окно с заголовком Multi Menu Sample. Это окно имеет меню IDR_MENU. Меню с идентификатором IDR_MENU должно быть определено в файле ресурсов приложения.



Содержание раздела