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