Documentos, vistas y la plataforma
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 con el comando Nuevo o Abrir en el menú Archivo y se guarda normalmente en un archivo. (Los documentos MFC estándar, que se derivan 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), se usarán las clases derivadas de
CWinThread
.CWinApp
se deriva deCWinThread
y representa el subproceso principal de ejecución (o el proceso principal) de la aplicación. También puede usar MFC en subprocesos secundarios.El objeto de 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. La aplicación y el objeto de aplicación ú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 documentos. Use la clase CSingleDocTemplate para las aplicaciones SDI o use la claseCMultiDocTemplate
para las aplicaciones MDI.Ventanas de marco
Las vistas se muestran dentro de las "ventanas de marco del documento". En una aplicación SDI, la ventana de marco del documento también es la "ventana de marco principal" de la aplicación. En una aplicación MDI, las ventanas de documento son ventanas de elementos secundarios que se muestran dentro de una ventana de marco principal. La clase principal derivada de ventana de marco especifica los estilos y otras características de las ventanas de marco que contienen las vistas. Si necesita personalizar las ventanas de marco, derive de
CFrameWnd
para personalizar la ventana de marco de documento para las aplicaciones SDI. Derive deCMDIFrameWnd
para personalizar la ventana de marco principal para las aplicaciones MDI. También derive una clase deCMDIChildWnd
para personalizar cada tipo distinto de ventanas de marco de documento MDI que admite la aplicación.Documento o documentos.
La clase de documento (derivada de
CDocument
) especifica los datos de la aplicación.Si quiere la funcionalidad OLE en la aplicación, derive la clase de documento de
COleDocument
o una de sus clases derivadas, según del tipo de funcionalidad que necesite.Vista o vistas.
La clase de vista (derivada de
CView
) es la "ventana de los datos" del usuario. La clase vista controla cómo el usuario ve los datos del documento e interactúa con él. 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 deCFormView
. Para datos de texto simples, use o derive deCEditView
. Para una aplicación de acceso a datos basada en formularios, como un programa de entrada de datos, derive deCRecordView
(para ODBC). También están disponibles las clasesCTreeView
,CListView
yCRichEditView
.
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.
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 se usan 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.