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

       

Метод PreCreateWindow


Виртуальный метод PreCreateWindow определен в классе CWnd. Он вызывается непосредственно перед созданием окна, связанного с объектом класса. В качестве параметра cs этому методу передается структура CREATESTRUCT, определяющая характеристики создаваемого окна. Приложение может изменить данные, записанные в этой структуре, чтобы повлиять на внешний вид создаваемого окна.

Классы, наследованные от CWnd, в том числе CView и CFrameWnd, переопределяют этот метод, изменяя структуру cs. В следующей таблице описано назначение полей структуры CREATESTRUCT.

 

Поле структуры CREATESTRUCT

Описание

lpCreateParams

Указатель на данные, используемые при создании окна

hInstance

Идентификатор приложения

hMenu

Идентификатор меню

hwndParent

Идентификатор родительского окна. Содержит NULL, если окно не имеет родительского окна

cy

Высота окна

cx

Ширина окна

y

Определяет y-координату верхнего левого угла окна. Для дочерних окон координаты задаются относительно родительского окна. Для родительского окна координаты указываются в экранной системе координат

x

Определяет x-координату верхнего левого угла окна. Координаты задаются также как и для поля y

style

Стиль класса

lpszName

Указатель на строку, закрытую двоичным нулем, в которой находится имя окна

lpszClass

Имя класса окна (смотри том 11 из серии “Библиотека системного программиста”)

dwExStyle

Дополнительные стили окна

MFC AppWizard переопределяет для вас метод PreCreateWindow, но не вносит в структуру cs никаких изменений и вызывает метод PreCreateWindow базового класса CView.

BOOL CSingleView::PreCreateWindow(CREATESTRUCT& cs)

{

      // TODO: Здесь вы можете внести изменения в структуру cs

      // Вызов метода PreCreateWindow базового класса CView

      return CView::PreCreateWindow(cs);

}


MFC AppWizard переопределяет для класса CMainFrame виртуальный метод PreCreateWindow, но не вносит в структуру cs никаких изменений и вызывает метод PreCreateWindow базового класса CFrameWnd.

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)

{

      // TODO: Здесь вы можете внести изменения в структуру cs

      return CFrameWnd::PreCreateWindow(cs);

}



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