Partager via


CWnd::Create

Crée la fenêtre enfant spécifiée et la attaché à l'objet de CWnd .

virtual BOOL Create(
   LPCTSTR lpszClassName,
   LPCTSTR lpszWindowName,
   DWORD dwStyle,
   Const RECT& rect,
   CWnd* pParentWnd,
   UINT nID,
   CCreateContext* pContext = NULL
);

Paramètres

  • [in] lpszClassName
    Pointeur vers une chaîne terminée par le caractère NULL qui contient le nom d'une classe de fenêtre stockée de système ; ou le nom d'une classe windows intégrée du système.

  • [in] lpszWindowName
    Pointeur vers une chaîne terminée par le caractère NULL qui contient le nom complet de la fenêtre ; sinon NULL pour tout nom complet de la fenêtre.

  • [in] dwStyle
    Combinaison d'opérations de bits (OR) de styles de fenêtre. l'option d' WS_POPUP n'est pas un style valide.

  • [in] rect
    La taille et l'emplacement de la fenêtre par rapport à l'angle supérieur gauche de la fenêtre parente.

  • [in] pParentWnd
    Pointeur vers la fenêtre parente.

  • [in] nID
    ID de la fenêtre.

  • [in] pContext
    Pointeur vers une structure de CCreateContext utilisée pour personnaliser l'architecture Document/Vue de l'application.

Valeur de retour

TRUE si la méthode a réussi ; sinon FALSE.

Notes

Avertissement

CWnd::PreCreateWindow affecte maintenant le membre de hMenu de son paramètre d' CREATESTRUCT 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.

Utilisez la fonction d' AfxRegisterWndClass pour stocker des classes de fenêtres. Les classes de fenêtres définies par l'utilisateur sont disponibles dans le module dans lequel elles sont enregistrées.

La méthode de CWnd::OnCreate est appelée avant que la méthode d' Create retourne, et avant que la fenêtre devient visible.

Exemple

// Dynamically create static control using CWnd::Create, 
// instead of with CStatic::Create, which doesn't 
// need the "STATIC" class name.
void CMyDlg::OnCreateStatic() 
{
   // m_pWndStatic is a CWnd* member of CMyDlg
   m_pWndStatic = new CWnd;
   m_pWndStatic->Create(_T("STATIC"), _T("Hi"), WS_CHILD | WS_VISIBLE,
       CRect(0, 0, 20, 20), this, 1234);
}

Configuration requise

en-tête : afxwin.h

Voir aussi

Référence

CWnd, classe

Graphique de la hiérarchie

CWnd::CWnd

CWnd::CreateEx

CreateWindowEx