Compartir a través de


Un retrato de la arquitectura documento/vista

Los documentos y vistas se emparejan en una aplicación MFC típica. Los datos se almacenan en el documento, pero la vista tiene acceso con privilegios a los datos. La separación del documento de la vista separa el almacenamiento y el mantenimiento de los datos de su presentación.

Obtener acceso a datos de documento desde la vista

La vista tiene acceso a los datos de su documento con la función GetDocument, que devuelve un puntero al documento o al convertir la clase de vista en C++ friend de la clase de documento. A continuación, la vista usa su acceso a los datos para obtener los datos cuando está listo para dibujarlos o manipularlos de otro modo.

Por ejemplo, desde la función miembro OnDraw de la vista, la vista usa GetDocument para obtener un puntero de documento. A continuación, usa ese puntero para acceder a un miembro de datos CString en el documento. La vista pasa la cadena a la función TextOut. Para ver el código de este ejemplo, vea Dibujo en una vista.

Entrada del usuario en la vista

La vista también puede interpretar un clic del mouse dentro de sí mismo como selección o edición de datos. Del mismo modo, podría interpretar las pulsaciones de tecla como entrada de datos o edición. Supongamos que el usuario escribe una cadena en una vista que administra el texto. La vista obtiene un puntero al documento y usa el puntero para pasar los nuevos datos al documento, que los almacena en alguna estructura de datos.

Actualizar varias vistas del mismo documento

En una aplicación con varias vistas del mismo documento , como una ventana divisora en un editor de texto, la vista pasa primero los nuevos datos al documento. A continuación, llama a la función miembro UpdateAllViews del documento, que indica a todas las vistas del documento que se actualicen a sí mismos, reflejando los nuevos datos. Esto sincroniza las vistas.

Qué más quieres saber

Consulte también

Arquitectura de vistas y documentos