Portret architektury dokument/widok
Dokumenty i widoki są skojarzone w typowych aplikacji MFC.Dane są przechowywane w dokumencie, ale widok ma uprzywilejowany dostęp do danych.Oddzielenie dokumentu z widoku oddziela przechowywanie i zachowanie danych z jego wyświetlania.
Uzyskanie dostępu do dokumentu dane z widoku
Widok uzyskuje dostęp do danych w swoim dokumencie albo z GetDocument funkcja, która zwraca wskaźnik do dokumentu lub tworząc widok klasy C++ friend klasy dokumentu.Widok a następnie używa jej dostępu do danych do uzyskania danych, gdy jest ona gotowa do rysowania lub wprowadzenia innych zmian.
Na przykład z widoku OnDraw używa widoku funkcji członka, GetDocument celu uzyskania wskaźnika dokumentu.A następnie używa tego wskaźnika dostępu do CString członek danych w dokumencie.Widok przekazuje ciąg do TextOut funkcji.Aby wyświetlić kod w tym przykładzie, zobacz rysunku w widoku.
Do widoku wprowadzania danych przez użytkownika
Widok może także interpretować kliknięcia myszą w siebie jako zaznaczenia lub edycji danych.Podobnie może to zinterpretować nacionięcia klawiszy jako wprowadzania danych lub edycji.Załóżmy, że użytkownik wpisuje ciąg znaków w widoku, który zarządza tekstu.Widok uzyskuje wskaźnik do dokumentu i używa wskaźnika do przekazania nowe dane do dokumentu, który przechowuje je w określoną strukturę danych.
Aktualizowanie wielu widoków tego samego dokumentu
W aplikacji z wielu widoków tego samego dokumentu — takich jak okno podziału w edytorze tekstów — widok przechodzi najpierw nowe dane do dokumentu.Następnie wywołuje dokumentu UpdateAllViews funkcji członka, który informuje o tym wszystkich widoków dokumentu, aby zaktualizować, aby odzwierciedlić nowe dane.Synchronizuje widoki.