Relations entre les objets MFC
Pour aider a mis le processus de création du document/vue du point de vue, considérez un programme en cours de exécution : un document, la fenêtre frame utilisée pour contenir la vue, et la vue associée au document.
Un document conserve une liste des vues de ce document et un pointeur au modèle de document qui a créé le document.
Une vue conserve un pointeur vers son document et est un enfant de sa fenêtre frame parente.
Une fenêtre frame de document conserve un pointeur vers sa vue active actuelle.
Un modèle de document conserve une liste de ses documents ouverts.
l'application conserve une liste de ses modèles de document.
Les windows gère toutes les fenêtres actives afin qu'il puisse envoyer des messages à ces derniers.
Ces relations sont générées lors de la création du document/vue.Le tableau suivant montre comment 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
De l'objet |
Accès à d'autres objets |
---|---|
Document |
Utilisez GetFirstViewPosition et GetNextView pour accéder à la liste de la vue du document. Appel GetDocTemplate pour obtenir le modèle de document. |
Vue |
Appel GetDocument pour obtenir le document. Appel GetParentFrame pour obtenir la fenêtre frame. |
Fenêtre frame de document |
Appel GetActiveView pour obtenir l'affichage actuel. Appelez GetActiveDocument pour obtenir le document attaché à l'affichage actuel. |
Fenêtre frame MDI |
Appelez MDIGetActive pour obtenir actuellement - CMDIChildWndactif. |
En général, une fenêtre frame a un point de vue, mais parfois, comme dans les fenêtres fractionnées, la même fenêtre frame contient plusieurs vues.La fenêtre frame conserve un pointeur à atteindre à la vue active ; le pointeur est mis à jour lorsqu'une autre vue est activée.
[!REMARQUE]
Un pointeur dans la fenêtre frame principale est stockée dans la variable membre de m_pMainWnd de l'objet application.Un appel à OnFileNew dans la substitution de la fonction membre d' InitInstance d' CWinApp définit m_pMainWnd pour vous.Si vous n'appelez pas OnFileNew, vous devez définir la valeur de la variable dans InitInstance vous-même.Les applications de composant COM SDI ((serveur) peuvent ne pas définir la variable si /Embedding est sur la ligne de commande.) Notez qu' m_pMainWnd est maintenant membre de classe CWinThread plutôt qu' CWinApp.
Voir aussi
Concepts
Modèles de document et le processus de création du document/vue