Condividi tramite


CWnd::PreCreateWindow

Chiamato dal framework prima della creazione della finestra di Windows associata a questo oggetto CWnd.

virtual BOOL PreCreateWindow(
   CREATESTRUCT& cs 
);

Parametri

Valore restituito

Diverso da zero se la creazione della finestra continua, 0 per indicare l'esito negativo di creazione.

Note

Nota di avvisoAttenzione

CWnd::PreCreateWindow ora che segue il membro di hMenu cs al puntatore this se il menu è NULL e lo stile contiene WS_CHILD.Per garantire una corretta funzionalità, assicurarsi che il controllo finestra di dialogo con un ID che non è NULL.

Questa modifica corregge un arresto anomalo scenari di interoperabilità gestiti o nativi.Un'istruzione TRACE in CWnd::Create segnala lo sviluppatore del problema.

Non chiamare mai direttamente la funzione.

L'implementazione predefinita di funzione dell'esecuzione di un nome e i surrogati di classe della finestra NULL un'impostazione predefinita appropriata.Eseguire l'override della funzione membro per modificare la struttura CREATESTRUCT prima che la finestra venga creata.

Ogni classe derivata da CWnd aggiunge una funzionalità ai relativi override PreCreateWindow.Da progettazione, le derivazioni PreCreateWindow non vengono trattate.Per determinare gli stili appropriati a ogni classe e alle interdipendenze tra gli stili, è possibile esaminare il codice sorgente MFC per la classe base dell'applicazione.Se si sceglie di eseguire l'override PreCreateWindow, è possibile determinare se gli stili utilizzati nella classe base dell'applicazione forniscono le funzionalità necessarie utilizzando le informazioni raccolte dal codice sorgente MFC.

Per ulteriori informazioni sulla modifica degli stili della finestra, vedere Modificando gli stili di una finestra creata da MFC.

Esempio

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

Requisiti

Header: afxwin.h

Vedere anche

Riferimenti

Classe CWnd

Grafico della gerarchia

CWnd::Create

CWnd::CreateEx

Struttura CREATESTRUCT