Compartir a través de


CMDIFrameWnd Class

Proporciona la funcionalidad de una ventana de marco (MDI) de interfaz de múltiples documentos de Windows, junto con los miembros para administrar la ventana.

class CMDIFrameWnd : public CFrameWnd

Members

Constructores públicos

Name

Descripción

CMDIFrameWnd::CMDIFrameWnd

Construye un CMDIFrameWnd.

Métodos públicos

Name

Descripción

CMDIFrameWnd::CreateClient

crea una ventana de Windows MDICLIENT para este CMDIFrameWnd. Llama a la función miembro de OnCreate de CWnd.

CMDIFrameWnd::CreateNewChild

crea una nueva ventana secundaria.

CMDIFrameWnd::GetWindowMenuPopup

devuelve el menú emergente de la ventana.

CMDIFrameWnd::MDIActivate

Genera otra ventana MDI secundaria.

CMDIFrameWnd::MDICascade

Organiza todas las ventanas secundarias en un formato en cascada.

CMDIFrameWnd::MDIGetActive

Recupera actualmente la ventana MDI secundaria activa, junto con una marca que indica si maximizan al elemento secundario.

CMDIFrameWnd::MDIIconArrange

Organiza todas las ventanas secundarias minimizadas del documento.

CMDIFrameWnd::MDIMaximize

Maximiza una ventana MDI secundaria.

CMDIFrameWnd::MDINext

Activa la ventana secundaria inmediatamente detrás actualmente la ventana secundaria activa y coloca actual de la ventana secundaria activa detrás de las demás ventanas secundarias.

CMDIFrameWnd::MDIPrev

Activa la ventana secundaria anterior y coloca actualmente la ventana secundaria activa inmediatamente detrás de ella.

CMDIFrameWnd::MDIRestore

Restaura una ventana MDI secundaria de tamaño maximizado o minimizado.

CMDIFrameWnd::MDISetMenu

Reemplaza el menú de una ventana de marco MDI, en el menú emergente de ventana, o ambos.

CMDIFrameWnd::MDITile

Organiza todas las ventanas secundarias en un formato de mosaico.

Comentarios

Para crear una ventana útil de marco MDI para la aplicación, derive una clase de CMDIFrameWnd. Agregue las variables miembro a la clase derivada a concreto almacenado de datos a la aplicación. El miembro del controlador de mensajes de implemente funciones y un mapa de mensajes en la clase derivada para especificar lo que ocurre cuando los mensajes se dirigen a la ventana.

Puede crear una ventana de marco MDI llamando a funciones miembro de Crear o de LoadFrame de CFrameWnd.

Antes de llamar a Crear o LoadFrame, debe crear el objeto de la ventana de marco en la pila mediante el operador de C++ nuevo . Antes de llamar Crear también puede registrar una clase de ventana con la función global de Clase para establecer los estilos de icono y de clase del cuadro.

Utilice la función miembro de Crear para pasar los parámetros de creación de cuadro como argumentos inmediatos.

LoadFrame requiere menos argumentos que Creary, en su lugar recupera la mayoría de los valores predeterminados de recursos, incluida la leyenda del cuadro, el icono, la tabla de aceleradores, y el menú. Para obtener acceso a LoadFrame, todos estos recursos deben tener el mismo Id. de recurso (por ejemplo, IDR_MAINFRAME).

Aunque MDIFrameWnd es derivado de CFrameWnd, una clase de ventana de marco derivada de CMDIFrameWnd no necesita declararse con DECLARE_DYNCREATE.

La clase de CMDIFrameWnd hereda gran parte de su implementación predeterminada de CFrameWnd. Para obtener una lista detallada de estas características, vea la descripción de la clase de CFrameWnd . la clase de CMDIFrameWnd tiene las características adicionales siguientes:

  • Una ventana de marco MDI administra la ventana de MDICLIENT , colocándolo de nuevo junto con las barras de controles. La ventana de cliente MDI es el elemento primario directo de las ventanas secundarias de marco MDI. Los estilos de ventana de WS_HSCROLL y de WS_VSCROLL especificadas en CMDIFrameWnd se aplican a la ventana de cliente de MDI en lugar de la ventana de marco principal para que el usuario puede cambiar el área de cliente MDI (como en el administrador de programas de Windows, por ejemplo).

  • Una ventana de marco MDI posee un menú predeterminado que se utiliza como la barra de menús cuando no hay ninguna ventana secundaria de MDI activa. Cuando hay un elemento secundario de MDI activa, la barra de menús de MDI de la ventana de marco automáticamente se reemplaza por el menú de la ventana MDI secundaria.

  • Una ventana de marco MDI funciona junto con la ventana secundaria actual de MDI, si la hay. Por ejemplo, los mensajes de comando se delegan actualmente el formulario secundario MDI activo antes de la ventana de marco MDI.

  • Una ventana de marco MDI tiene controladores predeterminados para los comandos del menú Ventana estándar siguientes:

    • ID_WINDOW_TILE_VERT

    • ID_WINDOW_TILE_HORZ

    • ID_WINDOW_CASCADE

    • ID_WINDOW_ARRANGE

  • Una ventana de marco MDI también tiene una implementación de ID_WINDOW_NEW, que crea un nuevo cuadro y vista en el documento actual. Una aplicación puede reemplazar estas implementaciones predeterminadas de comando para personalizar el control de la ventana MDI.

No utilice el operador de C++ cancelación destruir una ventana de marco. Utilice CWnd::DestroyWindow en su lugar. La implementación de CFrameWnd de PostNcDestroy eliminará el objeto C++ cuando se destruye la ventana. Cuando el usuario cierra la ventana de marco, el controlador predeterminado de OnClose llamará DestroyWindow.

Para obtener más información sobre CMDIFrameWnd, vea cuadro Windows.

Jerarquía de herencia

CObject

CCmdTarget

CWnd

CFrameWnd

CMDIFrameWnd

Requisitos

Encabezado: afxwin.h

Vea también

Referencia

CFrameWnd (Clase)

Gráfico de jerarquías

CWnd (Clase)

CMDIChildWnd Class

Conceptos

ejemplo MDI de MFC

ejemplo MDIDOCVW de MFC

ejemplo SNAPVW de MFC