Relazioni tra oggetti MFC
Per mettere in prospettiva il processo di creazione di documenti/visualizzazioni, prendere in considerazione un programma in esecuzione: un documento, la finestra cornice usata per contenere la visualizzazione e la visualizzazione associata al documento.
Un documento mantiene un elenco delle visualizzazioni del documento e un puntatore al modello di documento che ha creato il documento.
Una visualizzazione mantiene un puntatore al documento ed è un elemento figlio della finestra cornice padre.
Una finestra cornice documento mantiene un puntatore alla visualizzazione attiva corrente.
Un modello di documento mantiene un elenco dei relativi documenti aperti.
L'applicazione mantiene un elenco dei relativi modelli di documento.
Windows tiene traccia di tutte le finestre aperte in modo che possa inviare messaggi.
Queste relazioni vengono stabilite durante la creazione di documenti/visualizzazioni. Nella tabella seguente viene illustrato il modo in cui gli oggetti in un programma in esecuzione possono accedere ad altri oggetti. Qualsiasi oggetto può ottenere un puntatore all'oggetto applicazione chiamando la funzione globale AfxGetApp.
Ottenere l'accesso ad altri oggetti nell'applicazione
Da oggetto | Come accedere ad altri oggetti |
---|---|
Document | Usare GetFirstViewPosition e GetNextView per accedere all'elenco di visualizzazioni del documento. Chiama GetDocTemplate per ottenere il modello di documento. |
Visualizzazione | Chiama GetDocument per ottenere il documento. Chiama GetParentFrame per ottenere la finestra cornice. |
Finestra cornice documento | Chiama GetActiveView per ottenere la visualizzazione corrente. Chiama GetActiveDocument per ottenere il documento allegato alla visualizzazione corrente. |
Finestra cornice MDI | Chiamare MDIGetActive per ottenere l'oggetto CMDIChildWnd attualmente attivo. |
In genere, una finestra cornice ha una sola visualizzazione, ma a volte, come nelle finestre di divisione, la stessa finestra cornice contiene più visualizzazioni. La finestra cornice mantiene un puntatore alla visualizzazione attualmente attiva; il puntatore viene aggiornato ogni volta che viene attivata un'altra visualizzazione.
Nota
Un puntatore alla finestra cornice principale viene archiviato nella variabile membro m_pMainWnd dell'oggetto applicazione. Una chiamata a OnFileNew
nell'override InitInstance
della funzione membro dei CWinApp
set m_pMainWnd automaticamente. Se non si chiama OnFileNew
, è necessario impostare manualmente il valore InitInstance
della variabile. Le applicazioni del componente COM (server) SDI potrebbero non impostare la variabile se /Embedding si trova nella riga di comando. Si noti che m_pMainWnd è ora un membro della classe CWinThread
anziché CWinApp
.
Vedi anche
Modelli di documento e processo di creazione documento/visualizzazione
Creazione di modelli di documento
Creazione di documenti/visualizzazioni
Creazione di nuovi documenti, finestre e visualizzazioni