Compartir a través de


Relaciones entre objetos MFC

Para ayudar coloque el proceso de creación de documento y vista en perspectiva, vea un programa en ejecución: un documento, la ventana de marco utilizada para contener la vista, y la vista asociado al documento.

  • Un documento mantiene una lista de las vistas de ese documento y un puntero a la plantilla de documento que creó el documento.

  • Una vista mantiene un puntero al documento y es un elemento secundario de la ventana de marco principal.

  • Una ventana de marco de documento mantiene un puntero a la vista activa actual.

  • Una plantilla de documento mantiene una lista de los documentos abiertos.

  • La aplicación mantiene una lista de las plantillas de documento.

  • Windows realiza un seguimiento de todas las ventanas abiertas de modo que puede enviarles mensajes.

Estas relaciones se establecen durante la creación de documentos y vistas.La tabla siguiente se muestra cómo los objetos en un programa en ejecución pueden tener acceso a otros objetos.Cualquier objeto puede obtener un puntero al objeto application llamando a la función global AfxGetApp.

Acceso a objetos de Otros en la aplicación

De objeto

Cómo tener acceso a otros objetos

Documento

Utilice GetFirstViewPosition y GetNextView para tener acceso a la lista de la vista del documento.

Llamada GetDocTemplate para obtener la plantilla de documento.

View

Llamada GetDocument para obtener el documento.

Llamada GetParentFrame para obtener la ventana de marco.

Ventana de marco de documento

Llamada GetActiveView para obtener la vista actual.

Llame a GetActiveDocument para obtener el documento asociado a la vista actual.

Ventana de marco MDI

Llame a MDIGetActive para obtener actualmente CMDIChildWndactivo.

Normalmente, una ventana de marco tiene una vista, pero a veces, como en ventanas divisoras, la misma ventana de marco contiene varias vistas.La ventana de marco mantiene un puntero actualmente a la vista activa; se actualiza el puntero cualquier momento se produce otra vista.

[!NOTA]

Un puntero a la ventana de marco principal se almacena en la variable miembro de m_pMainWnd del objeto application.Una llamada a OnFileNew en la invalidación de la función miembro de InitInstance de CWinApp establece m_pMainWnd automáticamente.Si no llama OnFileNew, debe establecer el valor de variable en InitInstance personalmente.Las aplicaciones componentes COM (SDI (servidor) pueden no establecer la variable si /Embedding está en la línea de comandos). Observe que m_pMainWnd ahora es miembro de la clase CWinThread en lugar de CWinApp.

Vea también

Conceptos

Plantillas de documento y el proceso de Creación de documentos y vistas

Creación de plantillas de documento

Creación de documentos y vistas

Crear documentos de Nuevo, Windows, y vistas