Поделиться через


CWnd::PreCreateWindow

Вызывается инфраструктурой перед созданием окна Windows вложенного к данному объекту CWnd.

virtual BOOL PreCreateWindow( 
   CREATESTRUCT& cs  
);

Параметры

Возвращаемое значение

Ненулевой если создание окна следует продолжить. 0 означает ошибку создания.

Заметки

Предупреждение

Теперь элемент CWnd::PreCreateWindow присвоит hMenu cs к указателю this если меню NULL и стиль содержит WS_CHILD.Для правильного описания функциональности, убедитесь в том, что элемент управления диалогового окна с идентификатором, не NULL.

Это изменение исправляет после сбоя в управляемых и собственных сценариях взаимодействия.Оператор TRACE в CWnd::Create предупреждения разработчик проблемы.

Никогда не эта функция вызывается напрямую.

Реализация по умолчанию проверок этой функции для имени класса и заменителей окна NULL соответствующее значение по умолчанию. Переопределите этот функцию-член, чтобы изменить структуру CREATESTRUCT до того, как окно создано.

Каждый класс, производный от CWnd добавляет собственной функции к ее преодолению переопределения PreCreateWindow. Конструкцией, не описаны эти выходы PreCreateWindow. Чтобы задать стили, соответствующие каждому классу и взаимозависимостям между стилями можно просмотреть исходный код MFC для базового класса приложения. Если выбрано переопределение PreCreateWindow,, можно определить, содержат ли стили, используемые в базовом классе приложения функциональности можно с помощью сведений собранного от исходного кода MFC.

Дополнительные сведения о изменение стилей окна см. в подразделе Изменение стилей окна, созданного MFC.

Пример

// alter the styles of the mdi frame window
BOOL CMdiChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
   // Create a window without min/max buttons or sizable border
   cs.style |= WS_OVERLAPPED | WS_SYSMENU | WS_BORDER;

   // Size the window to 1/3 screen size and center it
   cs.cy = ::GetSystemMetrics(SM_CYSCREEN) / 3;
   cs.cx = ::GetSystemMetrics(SM_CXSCREEN) / 3;
   cs.y = ((cs.cy * 3) - cs.cy) / 2;
   cs.x = ((cs.cx * 3) - cs.cx) / 2;

   return CMDIChildWnd::PreCreateWindow(cs);
}

Требования

Header: afxwin.h

См. также

Ссылки

Класс CWnd

Диаграмма иерархии

CWnd::Create

CWnd::CreateEx

Структура CREATESTRUCT