Compartir a través de


CMDIChildWnd::Create

Llame a esta función miembro para crear una ventana secundaria de Windows MDI y para adjuntarla al objeto de CMDIChildWnd .

virtual BOOL Create( 
   LPCTSTR lpszClassName, 
   LPCTSTR lpszWindowName, 
   DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_OVERLAPPEDWINDOW, 
   const RECT& rect = rectDefault, 
   CMDIFrameWnd* pParentWnd = NULL, 
   CCreateContext* pContext = NULL  
);

Parámetros

  • lpszClassName
    Señala una cadena de caracteres terminada en null que denomina la clase de Windows (una estructura de Clase WNDCLASS ). el nombre de clase puede ser cualquier nombre registrado con la función global de Clase . debe ser NULL para CMDIChildWndestándar.

  • lpszWindowName
    Señala una cadena de caracteres terminada en null que representa el nombre de la ventana. Utilizado como texto de la barra de título.

  • dwStyle
    especifica los atributos de estilo de la ventana. se requiere el estilo de WS_CHILD .

  • rect
    Contiene el tamaño y la posición de la ventana. El valor de rectDefault permite que Windows especifique el tamaño y la posición de nuevo CMDIChildWnd.

  • pParentWnd
    especifica el elemento primario de la ventana. Si se utiliza NULL, la ventana principal de la aplicación.

  • pContext
    especifica una estructura de CCreateContext . este parámetro puede ser NULL.

Valor devuelto

Distinto de cero si correctamente; si no 0.

Comentarios

Actualmente la ventana secundaria activa de marco MDI puede determinar la leyenda de la ventana de marco principal. Esta característica está deshabilitada desactivando el bit de estilo de FWS_ADDTOTITLE de la ventana de marco secundario.

El marco de trabajo llama a esta función miembro en respuesta a un comando de usuario para crear una ventana secundaria, y el marco de trabajo usa el parámetro de pContext para conectarse correctamente la ventana secundaria a la aplicación. Cuando se llama a Crear, pContext puede ser NULL.

Ejemplo

ejemplo 1:

// CMainFrame::OnFileNewCMdiChildWnd() is a menu command handler for the  
// CMainFrame class, which in turn is a CMDIFrameWnd-derived class. 
// It shows the creation of a standard Windows MDI child window using  
// the registered CMDIChildWnd class.   
void CMainFrame::OnFileNewMdiChildWnd()
{
   CMDIChildWnd* pMDIChildWnd = new CMDIChildWnd;
   VERIFY(pMDIChildWnd->Create(
      NULL,                                        // standard CMDIChildWnd class
      _T("My MDIChildWnd"),                        // caption of MDI child window
      WS_CHILD | WS_VISIBLE | WS_OVERLAPPEDWINDOW, // window styles
      rectDefault,                                 // default rectangle size 
      this));                                      // parent window; can be NULL 

   // the default PostNcDestroy handler will delete this object when destroyed
}

ejemplo 2:

// CMainFrame::OnHello() is a menu command handler for the CMainFrame 
// class, which in turn is a CMDIFrameWnd-derived class. 
// It shows the creation of a Windows MDI child window using a custom 
// window class. The custom window class is registered in  
// CHelloWnd::Create(). CHelloWnd is a CMDIChildWnd-derived class. 
void CMainFrame::OnHello()
{
   CHelloWnd *pHelloWnd = new CHelloWnd;
   if (!pHelloWnd->Create(_T("Hello"),
      WS_CHILD | WS_VISIBLE | WS_OVERLAPPEDWINDOW,
      rectDefault, this))
      return;

   // the default PostNcDestroy handler will delete this object when destroyed
}
BOOL CHelloWnd::Create(
   LPCTSTR szTitle, 
   LONG style              /* = 0 */,
   const RECT& rect        /* = rectDefault */,
   CMDIFrameWnd* parent    /* = NULL */)
{
   // Setup the shared menu
   SetHandles(::LoadMenu(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_HELLO)),
      NULL);

   // Register a custom WndClass and create a window. 
   // This must be done because CHelloWnd has a custom icon.
   LPCTSTR lpszHelloClass =
      AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW,
      LoadCursor(NULL, IDC_ARROW),
      (HBRUSH) (COLOR_WINDOW+1),
      LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_HELLO)));

   return CMDIChildWnd::Create(lpszHelloClass, szTitle, style, rect, parent);
}

Requisitos

encabezado: afxwin.h

Vea también

Referencia

CMDIChildWnd Class

Gráfico de jerarquías

CMDIChildWnd::CMDIChildWnd

CWnd::PreCreateWindow