¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Varios tipos de documentos, vistas y ventanas de marco

Varios tipos de documentos, vistas y ventanas de marco

Visual Studio .NET 2003

La relación estándar entre un documento, su vista y su ventana de marco se describe en Creación de documentos y vistas. Muchas aplicaciones admiten un único tipo de documento (aunque posiblemente muchos documentos abiertos de ese tipo) con una sola vista del documento y una sola ventana de marco por documento. Pero algunas aplicaciones puede que necesiten modificar una o varias de estas características predeterminadas.

¿Sobre qué desea obtener más información?

Varios tipos de documentos

El Asistente para aplicaciones MFC crea una única clase de documento. No obstante, en algunos casos, puede ser necesaria compatibilidad con más de un tipo de documento. Por ejemplo, la aplicación puede necesitar documentos de hojas de cálculo y de gráficos. Cada tipo de documento está representado por su propia clase de documento y probablemente también por su propia clase de vista. Cuando el usuario selecciona el comando Nuevo archivo, el marco de trabajo muestra un cuadro de diálogo que enumera los tipos de documentos compatibles. A continuación, crea un documento del tipo seleccionado por el usuario. Cada tipo de documento es administrado por su propio objeto de plantilla de documento.

Para crear clases de documento adicionales, vea Agregar una clase. Seleccione CDocument como el tipo de clase de la que derivar y proporcione la información del documento solicitada. A continuación, implemente los datos de la nueva clase.

Para permitir que el marco de trabajo sepa algo acerca de la clase de documento adicional, debe agregar una segunda llamada a AddDocTemplate en el reemplazo de InitInstance de la clase de la aplicación. Para obtener más información, vea Plantillas de documento.

Varias vistas

Muchos documentos sólo requieren una vista única, pero es posible admitir más de una vista de un documento. Para ayudar a implementar varias vistas, un objeto de documento mantiene una lista de sus vistas, proporciona funciones miembro para agregar o quitar vistas y proporciona la función miembro UpdateAllViews para permitir que varias vistas sepan cuándo han cambiado los datos del documento.

MFC admite tres interfaces de usuario comunes que requieren varias vistas del mismo documento. Estos modelos son:

  • Objetos de vista de la misma clase, cada uno en diferentes ventanas de marco MDI del documento.

    Quizá desee admitir la creación de una segunda ventana de marco en un documento. El usuario podría seleccionar un comando Nueva ventana para abrir un segundo marco con una vista del mismo documento y, después, usar los dos marcos para ver partes distintas del documento simultáneamente. El marco de trabajo admite el comando Nueva ventana en el menú Ventana para aplicaciones MDI, duplicando la ventana de marco inicial y la vista adjunta al documento.

  • Objetos de vista de la misma clase, en la misma ventana de marco del documento.

    Las ventanas divisoras dividen el espacio de vista de la ventana de un solo documento en varias vistas distintas del documento. El marco de trabajo crea varios objetos de vista de la misma clase de vista. Para obtener más información, vea Ventanas divisoras.

  • Objetos de vista de clases diferentes, en una sola ventana de marco.

    En este modelo, una variación de la ventana divisora, varias vistas comparten una única ventana de marco. Las vistas se construyen a partir de clases diferentes y cada vista proporciona una forma distinta de ver el mismo documento. Por ejemplo, una vista podría mostrar un documento de procesamiento de textos en modo normal mientras otra vista lo muestra en modo de esquema. Un control divisor permite al usuario ajustar los tamaños relativos de las vistas.

La siguiente ilustración, dividida en partes a, b y c, muestra los tres modelos de interfaz de usuario en el orden presentado anteriormente.

Interfaces de usuario de múltiples vistas

El marco de trabajo proporciona estos modelos implementando el comando Nueva ventana y proporcionando la clase CSplitterWnd, según se describe en Ventanas divisoras. Se pueden implementar otros modelos utilizando éstos como punto de partida. Para consultar programas de ejemplo que ilustren las distintas configuraciones de vistas, ventanas de marco y divisores, vea Ejemplos de MFC.

Para obtener más información sobre UpdateAllViews, vea la clase CView en la Referencia de MFC y el ejemplo Scribble.

Varias ventanas de marco

Puede utilizar el comando Nueva ventana del menú Ventana en aplicaciones MDI para crear una segunda ventana de marco en el mismo documento. Para obtener más información, vea el primer modelo en la ilustración Interfaces de usuario de múltiples vistas.

Ventanas divisoras

En una ventana divisora, la ventana se divide, o se puede dividir, en dos o más paneles que se pueden desplazar. Un control divisor (o "cuadro de división") en el marco de ventana junto a las barras de desplazamiento permite al usuario ajustar los tamaños relativos de los paneles. Cada panel es una vista del mismo documento. En los divisores "dinámicos", las vistas son de la misma clase, como se muestra en la parte b de la ilustración Interfaces de usuario de múltiples vistas. En los divisores "estáticos", las vistas pueden ser de clases diferentes. Las ventanas divisoras de ambos tipos son compatibles con la clase CSplitterWnd.

Las ventanas divisoras dinámicas, con vistas de la misma clase, permiten al usuario dividir una ventana en múltiples paneles según se desee y, después, desplazar los distintos paneles para ver partes distintas del documento. El usuario también puede no dividir la ventana para quitar las vistas adicionales. Las ventanas divisoras agregadas al ejemplo Scribble son un ejemplo. Ese tema describe la técnica de crear ventanas divisoras dinámicas. En la parte b de la ilustración Interfaces de usuario de múltiples vistas se muestra una ventana divisora dinámica.

Las ventanas divisoras estáticas, con vistas de distintas clases, comienzan con la ventana dividida en varios paneles, cada uno con una función distinta. Por ejemplo, en el editor de mapas de bits de Visual C++, la ventana de imagen muestra dos paneles, uno al lado del otro. El panel del lado izquierdo muestra una imagen en tamaño real del mapa de bits. El panel del lado derecho muestra una imagen con el zoom o agrandada del mismo mapa de bits. Los paneles están separados por una "barra divisora" que el usuario puede arrastrar para cambiar los tamaños relativos de los paneles. En la parte c de la ilustración Interfaces de usuario de múltiples vistas se muestra una ventana divisora estática.

Para obtener más información, vea la clase CSplitterWnd en la Referencia de MFC y Ejemplos de MFC.

Vea también

Arquitectura documento/vista

Mostrar:
© 2015 Microsoft