Compartir a través de


Documentos, vistas y el marco

En el centro del marco de MFC están los conceptos de documento y vista. Un documento es un objeto de datos con el que el usuario interactúa en una sesión de edición. Se crea mediante el comando Nuevo o Abrir en el menú Archivo y normalmente se guarda en un archivo. (Los documentos MFC estándar, derivados de la clase CDocument, son diferentes de los documentos activos y los documentos compuestos OLE). Una vista es un objeto de ventana a través del cual el usuario interactúa con un documento.

Los objetos clave de una aplicación en ejecución son:

  • Objetos de subprocesos

    Si la aplicación crea subprocesos independientes de ejecución (por ejemplo, para realizar cálculos en segundo plano), usará clases derivadas de CWinThread. CWinApp se deriva de CWinThread y representa el subproceso principal de ejecución (o el proceso principal) de la aplicación. También puede usar MFC en hilos secundarios.

  • El objeto de la aplicación

    La clase de aplicación (derivada de CWinApp) controla todos los objetos anteriores y especifica el comportamiento de la aplicación, como la inicialización y la limpieza. El objeto de aplicación único y único crea y administra las plantillas de documento para cualquier tipo de documento que admita la aplicación.

  • Plantilla de documento o plantillas

    Una plantilla de documento organiza la creación de documentos, vistas y ventanas de marco. Una clase de plantilla de documento determinada, derivada de la clase CDocTemplate, crea y administra todos los documentos abiertos de un tipo. Las aplicaciones que admiten más de un tipo de documento tienen varias plantillas de documento. Use la clase CSingleDocTemplate para las aplicaciones SDI o use la clase CMultiDocTemplate para las aplicaciones MDI.

  • Ventanas con marco

    Las vistas se muestran dentro de "ventanas de marco de documento". En una aplicación SDI, la ventana del marco del documento también es la "ventana de marco principal" para la aplicación. En una aplicación MDI, las ventanas de documento son ventanas secundarias que se muestran dentro de una ventana de marco principal. La clase derivada de ventana de marco principal especifica los estilos y otras características de las ventanas que contienen tus vistas. Si necesita personalizar las ventanas de marco, derive de CFrameWnd para personalizar la ventana de marco de documento para las aplicaciones SDI. Derive de CMDIFrameWnd para personalizar la ventana de marco principal para las aplicaciones MDI. Derive también una clase de CMDIChildWnd para personalizar cada tipo distinto de ventanas de marco de documento MDI que admita la aplicación.

  • Documento o documentos.

    La clase de documento (derivada de CDocument) especifica los datos de la aplicación.

    Si desea una funcionalidad OLE en la aplicación, derive la clase de documento de COleDocument o una de sus clases derivadas, en función del tipo de funcionalidad que necesite.

  • Vista o vistas.

    La clase de vista (derivada de CView) es la ventana del usuario hacia los datos. La clase de vista controla cómo el usuario ve los datos del documento e interactúa con ellos. En algunos casos, puede que desee que un documento tenga varias vistas de los datos.

    Si necesita desplazarse, derive de CScrollView. Si la vista tiene una interfaz de usuario que se dispone en un recurso de plantilla de diálogo, derive de CFormView. Para datos de texto simples, use o derive de CEditView. Para una aplicación de acceso a datos basada en formularios, como un programa de entrada de datos, derive de CRecordView (para ODBC). También están disponibles las CTreeViewclases , CListViewy CRichEditView.

En una aplicación en ejecución, estos objetos responden de forma cooperativa a las acciones del usuario, enlazadas por comandos y otros mensajes. Un único objeto de aplicación administra una o varias plantillas de documento. Cada plantilla de documento crea y administra uno o varios documentos (en función de si la aplicación es SDI o MDI). El usuario ve y manipula un documento a través de una vista contenida dentro de una ventana de marco. En la ilustración siguiente se muestran las relaciones entre estos objetos para una aplicación SDI.

Diagrama de los objetos de una aplicación SDI en ejecución.
Objetos de una aplicación SDI en ejecución

En el resto de esta familia de artículos se explica cómo las herramientas de marco, el Asistente para aplicaciones MFC y los editores de recursos, crean estos objetos, cómo funcionan juntos y cómo los usa en la programación. Los documentos, las vistas y las ventanas de marco se describen con más detalle en Objetos de ventana y arquitectura de documento/vista.

Consulte también

Uso de las clases para escribir aplicaciones para Windows