The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.



Creates the specified child window and attaches it to the CWnd object.

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

[in] lpszClassName

Pointer to a null-terminated string that contains the name of a registered system window class; or the name of a predefined system window class.

[in] lpszWindowName

Pointer to a null-terminated string that contains the window display name; otherwise NULL for no window display name.

[in] dwStyle

Bitwise combination (OR) of window styles. The WS_POPUP option is not a valid style.

[in] rect

The size and location of the window relative to the top-left corner of the parent window.

[in] pParentWnd

Pointer to the parent window.

[in] nID

ID of the window.

[in] pContext

Pointer to a CCreateContext structure that is used to customize the document-view architecture for the application.

TRUE if the method was successful; otherwise FALSE.


CWnd::PreCreateWindow now assigns the hMenu member of its CREATESTRUCT parameter to the this pointer if the menu is NULL and the style contains WS_CHILD. For proper functionality, ensure that your dialog control has an ID that is not NULL.

This change fixes a crash in managed/native interop scenarios. A TRACE statement in CWnd::Create alerts the developer of the problem.

Use the AfxRegisterWndClass function to register window classes. User defined window classes are available in the module where they are registered.

The CWnd::OnCreate method is called before the Create method returns, and before the window becomes visible.


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


Header: afxwin.h