Freigeben über


CWnd::PreCreateWindow

Aufgerufen durch das Framework vor der Erstellung der Windows-Fensters angefügt CWnd zu diesem Objekt.

virtual BOOL PreCreateWindow(
   CREATESTRUCT& cs 
);

Parameter

Rückgabewert

Ungleich 0 (null), wenn die Fenstererstellung fortgesetzt; 0, um das Erstellungsfehlers anzugeben.

Hinweise

WarnhinweisVorsicht

CWnd::PreCreateWindow weist jetzt den hMenu Member von cs zum this Zeiger auf, wenn das Menü NULL ist und das Format WS_CHILD enthält.Für eine ordnungsgemäße Funktionalität stellen Sie sicher, dass das Dialogfeld-Steuerelement eine ID verfügt, die nicht NULL ist.

Diese Änderung behoben einen Absturz in den verwalteten und systemeigenen Interopszenarien.Eine TRACE-Anweisung in CWnd::Create weist den Entwickler des Problems.

Rufen Sie nie diese Funktion direkt auf.

Die Standardimplementierung von dieses Funktionsüberprüfungen für einen NULL Fensterklassennamen und -ersatz ein entsprechender Standard.Überschreiben Sie diese Memberfunktion, um die CREATESTRUCT-Struktur zu ändern, bevor das Fenster erstellt wird.

Jede Klasse, die von CWnd abgeleitet wird, fügt die eigene Funktionsweise seiner Überschreibung von PreCreateWindow hinzu.Mit Absicht werden diese Ableitungen von PreCreateWindow nicht dokumentiert.Um Stile zu bestimmen, die auf jede Klasse und zu den gegenseitigen Abhängigkeiten zwischen den Formaten äquivalent sind, können Sie den MFC-Quellcode für die Basisklasse der Anwendung zu überprüfen.Wenn Sie festlegen, dass PreCreateWindow, zu überschreiben, können Sie bestimmen, ob die Stile, die in der Basisklasse der Anwendung verwendet werden, die Funktionalität, die Sie benötigen, indem Sie die Informationen verwenden, die vom MFC-Quellcode erfasst werden.

Weitere Informationen zum Ändern von Fensterstilen, finden Sie unter Die Stile eines Fensters geändert wird von MFC.

Beispiel

// 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);
}

Anforderungen

Header: afxwin.h

Siehe auch

Referenz

CWnd-Klasse

Hierarchien-Diagramm

CWnd::Create

CWnd::CreateEx

CREATESTRUCT-Struktur