CWnd::PreCreateWindow
Chiamato dal framework prima della creazione della finestra di Windows associata a questo oggetto CWnd.
virtual BOOL PreCreateWindow(
CREATESTRUCT& cs
);
Parametri
- cs
Una struttura CREATESTRUCT.
Valore restituito
Diverso da zero se la creazione della finestra continua, 0 per indicare l'esito negativo di creazione.
Note
Attenzione |
---|
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