Udostępnij przez


Portret architektury dokument/widok

Dokumenty i widoki są sparowane w typowej aplikacji MFC. Dane są przechowywane w dokumencie, ale widok ma uprzywilejowany dostęp do danych. Oddzielenie dokumentu od widoku oddziela magazyn i konserwację danych od ich wyświetlania.

Uzyskiwanie dostępu do danych dokumentu z widoku

Widok uzyskuje dostęp do danych dokumentu za pomocą funkcji GetDocument , która zwraca wskaźnik do dokumentu lub tworząc klasę widoku C++ friend klasy dokumentu. Następnie widok używa dostępu do danych w celu uzyskania danych, gdy jest gotowy do rysowania lub manipulowania nimi w inny sposób.

Na przykład z funkcji składowej OnDraw widoku widok używa GetDocument polecenia w celu uzyskania wskaźnika dokumentu. Następnie używa tego wskaźnika, aby uzyskać dostęp CString do elementu członkowskiego danych w dokumencie. Widok przekazuje ciąg do TextOut funkcji. Aby wyświetlić kod dla tego przykładu, zobacz Rysunek w widoku.

Dane wejściowe użytkownika w widoku

Widok może również interpretować kliknięcie myszą w obrębie samego siebie jako wybór lub edytowanie danych. Podobnie może interpretować naciśnięcia klawiszy jako wpis danych lub edycję. Załóżmy, że użytkownik wpisze ciąg w widoku, który zarządza tekstem. Widok uzyskuje wskaźnik do dokumentu i używa wskaźnika do przekazania nowych danych do dokumentu, który przechowuje go w jakiejś strukturze danych.

Aktualizowanie wielu widoków tego samego dokumentu

W aplikacji z wieloma widokami tego samego dokumentu — na przykład w oknie rozdzielacza w edytorze tekstów — widok najpierw przekazuje nowe dane do dokumentu. Następnie wywołuje funkcję składową UpdateAllViews dokumentu, która informuje wszystkie widoki dokumentu o konieczności zaktualizowania, odzwierciedlając nowe dane. Spowoduje to zsynchronizowanie widoków.

Co chcesz dowiedzieć się więcej o

Zobacz też

Architektura dokumentu/widoku