Architektura dokument/widok

Domyślnie Kreator aplikacji MFC tworzy szkielet aplikacji z klasą dokumentów i klasą widoku. MFC oddziela zarządzanie danymi na te dwie klasy. Dokument przechowuje dane i zarządza drukowaniem danych i koordynuje aktualizowanie wielu widoków danych. Widok wyświetla dane i zarządza interakcją użytkownika z nimi, w tym wybór i edytowanie.

W tym modelu obiekt dokumentu MFC odczytuje i zapisuje dane w magazynie trwałym. Dokument może również udostępniać interfejs danych, gdziekolwiek się znajduje (na przykład w bazie danych). Oddzielny obiekt widoku zarządza wyświetlaniem danych, od renderowania danych w oknie po wybór użytkownika i edytowanie danych. Widok uzyskuje dane z dokumentu i komunikuje się z powrotem do dokumentu o wszelkich zmianach danych.

Chociaż można łatwo zastąpić lub zignorować separację dokumentu/widoku, w większości przypadków istnieją przekonujące powody, aby postępować zgodnie z tym modelem. Jedną z najlepszych jest potrzeba wielu widoków tego samego dokumentu, takich jak arkusz kalkulacyjny i widok wykresu. Model dokumentu/widoku umożliwia oddzielny obiekt widoku reprezentujący każdy widok danych, podczas gdy kod wspólny dla wszystkich widoków (takich jak aparat obliczeń) może znajdować się w dokumencie. Dokument wykonuje również zadanie aktualizowania wszystkich widoków za każdym razem, gdy dane się zmieniają.

Architektura dokumentu/widoku MFC ułatwia obsługę wielu widoków, wielu typów dokumentów, okien rozdzielanych i innych cennych funkcji interfejsu użytkownika.

Elementy struktury MFC najbardziej widoczne zarówno dla użytkownika, jak i dla Ciebie, programisty, są dokumentem i widokiem. Większość pracy podczas tworzenia aplikacji z platformą przechodzi do pisania dokumentów i klas wyświetlania. W tej rodzinie artykułów opisano:

  • Cele dokumentów i widoków oraz sposobu ich interakcji ze strukturą.

  • Co należy zrobić, aby je zaimplementować.

W centrum dokumentu/widoku znajdują się cztery kluczowe klasy:

Klasa CDocument (lub COleDocument) obsługuje obiekty używane do przechowywania lub kontrolowania danych programu i udostępnia podstawowe funkcje klas dokumentów zdefiniowanych przez programistów. Dokument reprezentuje jednostkę danych, którą użytkownik zwykle otwiera za pomocą polecenia Otwórz w menu Plik i zapisuje polecenie Zapisz w menu Plik.

Obiekt CView (lub jedna z wielu klas pochodnych) udostępnia podstawowe funkcje klas widoków zdefiniowanych przez programistów. Widok jest dołączany do dokumentu i działa jako pośrednik między dokumentem a użytkownikiem: widok renderuje obraz dokumentu na ekranie i interpretuje dane wejściowe użytkownika jako operacje na dokumencie. Widok renderuje również obraz do drukowania i podglądu wydruku.

Obiekt CFrameWnd (lub jedna z jego odmian) obsługuje obiekty, które udostępniają ramkę wokół jednego lub kilku widoków dokumentu.

CDocTemplate (lub CSingleDocTemplate lub CMultiDocTemplate) obsługuje obiekt, który koordynuje jeden lub więcej istniejących dokumentów danego typu i zarządza tworzeniem poprawnych obiektów dokumentów, widoków i okien ramowych dla tego typu.

Na poniższej ilustracji przedstawiono relację między dokumentem a jego widokiem.

View is the part of the document that's displayed.
Dokument i widok

Implementacja dokumentu/widoku w bibliotece klas oddziela dane od jego wyświetlania i od operacji użytkownika na danych. Wszystkie zmiany w danych są zarządzane za pośrednictwem klasy dokumentów. Widok wywołuje ten interfejs, aby uzyskać dostęp do danych i zaktualizować je.

Dokumenty, skojarzone z nimi widoki i okna ramowe zawierające widoki są tworzone przez szablon dokumentu. Szablon dokumentu jest odpowiedzialny za tworzenie wszystkich dokumentów jednego typu dokumentu i zarządzanie nimi.

Co chcesz dowiedzieć się więcej o

Zobacz też

Elementy interfejsu użytkownika
Windows
Okna ramowe
Szablony dokumentów i proces tworzenia dokumentu/widoku
Tworzenie dokumentu/widoku
Tworzenie nowych dokumentów, okien i widoków