Partager via


Relations entre les objets MFC

Pour aider à mettre le processus de création de documents/vue dans la perspective, envisagez un programme en cours de exécution : un document, la fenêtre cadre utilisée pour contenir la vue, puis la vue associées au document.

  • Un document conserve une liste des vues de ce document et un pointeur vers le modèle de document qui a créé le document.

  • Une vue conserve un pointeur à son document et est un enfant de la fenêtre parente cadre.

  • Une fenêtre cadre de document conserve un pointeur vers la vue active actuelle.

  • Un modèle de document conserve une liste de les documents ouverts.

  • L'application conserve une liste de ses modèles de document.

  • Windows gère toutes les fenêtres actives elle peut envoyer des messages à celles-ci.

Ces relations sont créées lors de la création de documents/vue. Le tableau suivant illustre les objets dans un programme en cours de exécution peuvent accéder à d'autres objets. Tout objet peut obtenir un pointeur vers l'objet d'application en appelant la fonction globale AfxGetApp.

Accéder à d'autres objets dans votre application

à partir des objets

Comment accéder à d'autres objets

Document

Utilisez GetFirstViewPosition et GetNextView pour accéder à la liste de la vue du document.

Appelez GetDocTemplate pour obtenir le modèle de document.

Vue

Appelez GetDocument pour obtenir le document.

Appelez GetParentFrame pour obtenir la fenêtre cadre.

Fenêtres frame de document

Appelez GetActiveView pour obtenir la vue actuelle.

Appelez GetActiveDocument pour obtenir le document associé à la vue actuelle.

Fenêtre frame MDI

Appelez pour obtenir MDIGetActive actuellement actif CMDIChildWndactif.

En général, une fenêtre cadre d'une perspective, mais dans certains cas, comme dans les fenêtres de fractionnement, la même fenêtre cadre contient plusieurs vues. La fenêtre cadre conserve un pointeur actuellement actif à la vue active ; le pointeur est mis à jour lorsqu'une vue est activée.

Notes

Pointeur vers la fenêtre principale cadre est stockée dans la variable membre m_pMainWnd de l'objet d'application.Un appel à OnFileNew de la substitution de la fonction membre de InitInstance d'CWinApp définit m_pMainWnd automatiquement.Si vous n'appelez pas OnFileNew, vous devez définir la valeur de la variable dans InitInstance vous-même. (Les applications de composant (serveur) COM SDI peuvent ne pas définir la variable si /Embedding est sur la ligne de commande.) Notez que m_pMainWnd est maintenant un membre de la classe CWinThread plutôt que CWinApp.

Voir aussi

Concepts

Modèles de document et le processus de création du document/vue

Création de modèles de document

création de document/vue

Créer de nouveaux documents, windows, et vues