Метод 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);
}