Vistas de formulario (MFC)
Puede agregar formularios a cualquier aplicación de Visual C++ que admita las bibliotecas de MFC, incluida una aplicación basada en formularios (una cuya clase de vista derive de CFormView
). Aunque la aplicación no se creara inicialmente para admitir formularios, Visual C++ agrega automáticamente esta compatibilidad al insertar un formulario nuevo. En una aplicación SDI o MDI, que implementa la arquitectura de vistas y documentos predeterminada, cuando el usuario elige el comando Nuevo (de manera predeterminada, en el menú Archivo), Visual C++ pide al usuario que elija entre los formularios disponibles.
En una aplicación SDI, cuando el usuario elige el comando Nuevo, la instancia actual del formulario continúa ejecutándose, aunque se crea una nueva instancia de la aplicación con el formulario seleccionado si no se encuentra ninguno. En una aplicación MDI, la instancia actual del formulario continúa ejecutándose cuando el usuario elige el comando Nuevo.
Nota:
Puede insertar un formulario en una aplicación basada en cuadros de diálogo (una cuya clase de cuadros de diálogo se base en CDialog
y otra en la que no se implemente ninguna clase de vista). Pero sin la arquitectura de documentos o vistas, Visual C++ no implementa automáticamente la funcionalidad Archivo>Nuevo. Debe crear una manera de que el usuario vea formularios adicionales, por ejemplo, mediante la implementación de un cuadro de diálogo con pestañas con varias páginas de propiedades.
Al insertar un nuevo formulario en la aplicación, Visual C++ hace lo siguiente:
Crea una clase basada en una de las clases de estilo de formulario que elija (
CFormView
,CRecordView
,CDaoRecordView
oCDialog
).Crea un recurso de cuadro de diálogo con estilos adecuados (o puede usar un recurso de cuadro de diálogo existente que aún no se haya asociado a una clase).
Si elige un recurso de cuadro de diálogo existente, es posible que tenga que establecer estos estilos mediante la página Propiedades del cuadro de diálogo. Los estilos de un cuadro de diálogo deben incluir:
WS_CHILD=On
WS_BORDER=Off
WS_VISIBLE=Off
WS_CAPTION=Off
En el caso de las aplicaciones basadas en la arquitectura de documentos o vistas, el comando Nuevo formulario (haga clic con el botón derecho en la Vista de clases) también:
Crea una clase basada en
CDocument
En lugar de crear una nueva clase, puede usar cualquier clase basada en
CDocument
existente en el proyecto.Genera una plantilla de documento (derivada de
CDocument
) con recursos de cadena, menú e icono.También puede crear una nueva clase en la que basar la plantilla.
Agrega una llamada a
AddDocumentTemplate
en el códigoInitInstance
de la aplicación.Visual C++ agrega este código por cada formulario nuevo que se cree, lo que agrega el formulario a la lista de formularios disponibles cuando el usuario elige el comando Nuevo. Este código incluye el identificador de recurso asociado del formulario y los nombres de las clases de documento, vista y marco asociadas que forman el nuevo objeto de formulario.
Las plantillas de documento sirven como conexión entre documentos, ventanas de marco y vistas. Se pueden crear muchas plantillas para un único documento.
Para más información, consulte: