Compartir a través de


CWnd::PreCreateWindow

Llamado por el marco antes de la creación de la ventana de Windows asociada a este objeto de CWnd .

virtual BOOL PreCreateWindow(
   CREATESTRUCT& cs 
);

Parámetros

Valor devuelto

Distinto de cero si la creación de la ventana continúa; 0 para indicar el error de creación.

Comentarios

Nota de precauciónPrecaución

CWnd::PreCreateWindow ahora asigna el miembro de hMenu de cs el puntero de this si el menú es NULL y estilo contiene WS_CHILD.Para obtener la funcionalidad correcta, asegúrese de que el control de cuadro de diálogo tiene un id. que no es NULL.

Este cambio corrige un bloqueo en escenarios administradas y nativas de interoperabilidad.Un fragmento de TRACE en CWnd::Create avisa el desarrollador del problema.

Nunca debe llamar a esta función directamente.

La implementación predeterminada de los controles de esta ejecución para un nombre y los suplentes de clase de ventana de NULL un valor predeterminado adecuado.Invalide esta función miembro para modificar la estructura de CREATESTRUCT antes de crear la ventana.

Cada clase derivada de CWnd agrega su propia funcionalidad a la invalidación de PreCreateWindow.Por diseño, estas derivaciones de PreCreateWindow no se incluyen.Para determinar los estilos apropiados a cada clase y las interdependencias entre los estilos, puede examinar el código fuente de MFC para la clase base de la aplicación.Si elige reemplazar PreCreateWindow, puede determinar si los estilos utilizados en la clase base de la aplicación proporcionan la funcionalidad que necesita mediante la información recopilada de código fuente de MFC.

Para obtener más información sobre el cambio estilos de ventana, vea Cambiar los estilos de una ventana creada por MFC.

Ejemplo

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

Requisitos

encabezado: afxwin.h

Vea también

Referencia

Clase de CWnd

Gráfico de jerarquía

CWnd::Create

CWnd::CreateEx

CREATESTRUCT (Estructura)