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ż
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla