Descrizione dell'architettura documento/visualizzazione
I documenti e le visualizzazioni vengono associati in una tipica applicazione MFC. I dati vengono archiviati nel documento, ma la vista ha accesso con privilegi ai dati. La separazione del documento dalla visualizzazione separa l'archiviazione e la manutenzione dei dati dalla relativa visualizzazione.
Accesso ai dati dei documenti dalla visualizzazione
La vista accede ai dati del documento con la funzione GetDocument , che restituisce un puntatore al documento oppure impostando la classe view in C++ friend
della classe documento. La vista usa quindi l'accesso ai dati per ottenere i dati quando è pronto per disegnare o modificarlo in altro modo.
Ad esempio, dalla funzione membro OnDraw della visualizzazione, la vista usa GetDocument
per ottenere un puntatore al documento. Quindi usa tale puntatore per accedere a un CString
membro dati nel documento. La vista passa la stringa alla TextOut
funzione. Per visualizzare il codice per questo esempio, vedere Disegno in una visualizzazione.
Input dell'utente per la visualizzazione
La visualizzazione può anche interpretare un clic del mouse all'interno di se stesso come selezione o modifica dei dati. Analogamente, potrebbe interpretare le sequenze di tasti come immissione o modifica dei dati. Si supponga che l'utente digita una stringa in una vista che gestisce il testo. La vista ottiene un puntatore al documento e usa il puntatore per passare i nuovi dati al documento, che lo archivia in una struttura di dati.
Aggiornamento di più visualizzazioni dello stesso documento
In un'applicazione con più visualizzazioni dello stesso documento, ad esempio una finestra di divisione in un editor di testo, la visualizzazione passa prima i nuovi dati al documento. Chiama quindi la funzione membro UpdateAllViews del documento, che indica a tutte le visualizzazioni del documento di aggiornarsi, riflettendo i nuovi dati. In questo modo le visualizzazioni vengono sincronizzate.