Partager via


CWnd::PreCreateWindow

Appelé par l'infrastructure avant la création de la fenêtre de windows attachée à cet objet d' CWnd .

virtual BOOL PreCreateWindow(
   CREATESTRUCT& cs 
);

Paramètres

Valeur de retour

Une valeur différente de zéro si la création de fenêtre continue ; 0 pour indiquer l'échec de création.

Notes

Mise en gardeAttention

CWnd::PreCreateWindow affecte maintenant le membre de hMenu d' cs au pointeur d' this si le menu est NULL et le style contient WS_CHILD.Pour la fonctionnalité appropriée, assurez -vous que votre contrôle de boîte de dialogue a un ID qui n'est pas NULL.

Cette modification résout un incident dans scénarios d'interopérabilité managés/natifs.Une instruction d' TRACE dans CWnd::Create alerte le développeur du problème.

n'appelez directement jamais cette fonction.

L'implémentation par défaut des contrôles ce cours de exécution pour un nom et les substituts de classe de fenêtre de NULL une valeur par défaut appropriée.Remplacez cette fonction membre pour modifier la structure d' CREATESTRUCT avant que la fenêtre soit créée.

Chaque classe dérivée d' CWnd ajoute sa propre fonctionnalité à la substitution d' PreCreateWindow.Par conception, les dérivations d' PreCreateWindow ne sont pas documentées.Pour déterminer les styles appropriés à chaque classe et les interdépendances entre les styles, vous pouvez examiner le code source MFC pour la classe de base de votre application.Si vous choisissez de substituer PreCreateWindow, vous pouvez déterminer si les styles utilisés dans la classe de base de votre application fournissent les fonctionnalités dont vous avez besoin à l'aide de les informations collectées de code source MFC.

Pour plus d'informations sur la modification des styles de fenêtre, consultez Modification des styles d'une fenêtre créée par les MFC.

Exemple

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

Configuration requise

Header: afxwin.h

Voir aussi

Référence

CWnd, classe

Graphique de la hiérarchie

CWnd::Create

CWnd::CreateEx

CREATESTRUCT, structure