Compartir a través de


Arquitectura de documentos y vistas

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 él, 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 visualización de datos, desde la representación de los datos en una ventana a la selección y edición de datos del usuario. La vista obtiene datos para mostrar del documento y se comunica de nuevo con el documento cualquier cambio de datos.

Aunque puede invalidar o omitir fácilmente la separación de documentos o vistas, hay razones convincentes 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 toma la tarea de actualizar todas las vistas cada vez que cambian los datos.

La arquitectura de documentos y vistas de MFC facilita 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 de MFC más visibles tanto para el usuario como para usted, el programador, son el documento y la vista. La mayor parte del trabajo en el desarrollo de una aplicación con el marco entra en la escritura de las clases de documento y vista. En este artículo se describe la familia:

  • Los propósitos de los documentos y vistas y cómo interactúan en el marco.

  • Qué debe hacer para implementarlos.

En el centro del documento o la vista hay cuatro clases clave:

La clase CDocument (o COleDocument) admite objetos usados para almacenar o controlar los datos del programa y proporciona la funcionalidad básica para las clases de documentos definidas por el programador. Un documento representa la unidad de datos que el usuario suele abrir con el comando Abrir en el menú Archivo y guarda con el comando Guardar en el menú Archivo.

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.

View es la parte del documento que se muestra.
Documento y vista

La implementación de documentos y vistas en la biblioteca de clases separa los datos en sí de su visualización y de las operaciones de 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 actualizarlos.

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é quieres saber más sobre

Consulte también

Elementos de la interfaz de usuario
Windows
Ventanas de marco
Plantillas de documento y proceso de creación de documentos o vistas
Creación de documentos y vistas
Crear nuevos documentos, Ventanas y vistas