Arquitectura de vistas y documentos
De forma predeterminada, el Asistente para aplicaciones MFC crea un esqueleto de aplicación con una clase de documento y una clase de vista. MFC separa la administración de datos en estas dos clases. El documento almacena los datos y administra la impresión de los datos y coordina la actualización de varias vistas de los datos. La vista muestra los datos y administra la interacción del usuario con ellos, incluida la selección y edición.
En este modelo, un objeto de documento MFC lee y escribe datos en el almacenamiento persistente. El documento también puede proporcionar una interfaz a los datos dondequiera que resida (por ejemplo, en una base de datos). Un objeto de vista independiente administra la presentación de datos, desde la representación de los datos en una ventana hasta la selección y edición de datos por parte del usuario. La vista obtiene los datos de visualización del documento y comunica al documento los cambios en los datos.
Aunque puede invalidar u omitir fácilmente la separación entre documentos y vistas, hay razones atractivas para seguir este modelo en la mayoría de los casos. Una de las mejores es cuando se necesitan varias vistas del mismo documento, como una hoja de cálculo y una vista de gráfico. El modelo de documento/vista permite que un objeto de vista independiente represente cada vista de los datos, mientras que el código común a todas las vistas (como un motor de cálculo) puede residir en el documento. El documento también asume la tarea de actualizar todas las vistas cada vez que cambian los datos.
La arquitectura de documentos y vistas MFC facilitan la compatibilidad con varias vistas, varios tipos de documentos, ventanas divisoras y otras características valiosas de la interfaz de usuario.
Las partes del marco MFC más visibles para el usuario y para usted, el programador, son el documento y la vista. La mayor parte de su trabajo en el desarrollo de una aplicación con el marco de trabajo va a escribir el documento y ver clases. En esta familia de artículos se describe lo siguiente:
Los propósitos de los documentos y vistas y cómo interactúan en el marco.
Qué debe hacer para implementarlos.
En el núcleo del documento o la vista hay cuatro clases clave:
La CDocument (o COleDocument) admite objetos que se usan para almacenar o controlar los datos del programa y proporciona la funcionalidad básica para las clases de documento definidas por el programador. Un documento representa la unidad de datos que normalmente abre el usuario con el comando Abrir en el menú Archivo y se guarda con el comando Guardar en el menú Archivo.
El CView (o una de sus muchas clases derivadas) proporciona la funcionalidad básica para las clases de vista definidas por el programador. Una vista se adjunta a un documento y actúa como intermediario entre el documento y el usuario: la vista representa una imagen del documento en la pantalla e interpreta la entrada del usuario como operaciones en el documento. La vista también representa la imagen para la impresión y la vista previa de impresión.
CFrameWnd (o una de sus variaciones) admite objetos que proporcionan el marco alrededor de una o varias vistas de un documento.
CDocTemplate (o CSingleDocTemplate o CMultiDocTemplate) admite un objeto que coordina uno o varios documentos existentes de un tipo determinado y administra la creación de los objetos de ventana de documento, vista y marco correctos para ese tipo.
En la ilustración siguiente se muestra la relación entre un documento y su vista.
Documento y vista
La implementación de documentos y vistas de la biblioteca de clases separa los propios datos de su presentación y de las operaciones del usuario en los datos. Todos los cambios en los datos se administran a través de la clase de documento. La vista llama a esta interfaz para acceder a los datos y actualizar los datos.
Los documentos, sus vistas asociadas y las ventanas de marco que enmarcan las vistas se crean mediante una plantilla de documento. La plantilla de documento es responsable de crear y administrar todos los documentos de un tipo de documento.
Qué más quieres saber
Clases de documentos y de vistas creadas por el Asistente para aplicaciones MFC
Inicializar sus propias adiciones a las clases de documento y vista
Consulte también
Elementos de la interfaz de usuario
Windows
Ventanas de marco
Plantillas de documento y el proceso de creación de documentos y vistas
Creación de documentos y vistas
Creación de nuevos documentos, ventanas y vistas