Udostępnij za pośrednictwem


Wiele typów dokumentów, widoków i okien ramowych

Standard relacji pomiędzy dokumentu, jego widoku i jego okna ramki jest opisany w Tworzenie dokumentu/View.Wiele aplikacji obsługuje pojedynczy dokument typu (ale ewentualnie wieloma otwartymi dokumentami tego typu) z jednym widoku dokumentu i okno tylko jedną ramkę w dokumencie.Ale niektóre aplikacje mogą wymagać zmienić zawartość jednego lub więcej z tych ustawień domyślnych.

O czym chcesz się dowiedzieć więcej?

  • Wiele typów dokumentów

  • Wiele widoków

  • Wiele okien ramek

  • Rozdzielacz windows

Wiele typów dokumentów

Kreator aplikacji MFC tworzy klasę jednolitego dokumentu dla Ciebie.Jednak w niektórych przypadkach, może trzeba obsługiwać więcej niż jeden typ dokumentu.Na przykład aplikacja może być konieczne dokumenty arkuszy i wykresów.Każdy typ dokumentu jest reprezentowane przez własnej klasy dokumentu i prawdopodobnie własnej klasy widoku.Gdy użytkownik wybierze polecenie Nowy plik, ramach Wyświetla okno dialogowe, które wyświetla listę typów obsługiwanych dokumentu.Następnie tworzy dokument typu, jaki użytkownik wybrał.Każdy typ dokumentu jest zarządzany przez swój własny obiekt Szablon dokumentu.

Aby utworzyć klas dodatkowych dokumentów, zobacz dodanie klasy.Wybierz CDocument jako typu klasy, który ma dziedziczyć i dostarczania im informacji żądanych dokumentów.Następnie implementacji nowej klasy danych.

Aby umożliwić framework wiedzieć o klasie ekstra dokumentu, należy dodać drugie wywołanie AddDocTemplate w klasie aplikacji InitInstance zastąpić.Aby uzyskać więcej informacji, zobacz Szablony dokumentów.

Wiele widoków

Wiele dokumentów wymaga tylko jeden widok, ale użytkownik może obsługiwać więcej niż jeden widok pojedynczego dokumentu.Aby ułatwić wdrożenie wielu widoków, obiektu dokumentu przechowuje listę jej poglądów, zapewnia funkcje składowe do dodawania i usuwania widoków i dostarcza UpdateAllViews funkcji składowej za poinformowanie wiele widoków wiedzieć, kiedy dane dokumentu uległy zmianie.

MFC obsługuje trzy typowe interfejsy użytkownika wymagające wielu widoków na tym samym dokumencie.Modele te są:

  • Widok obiektów tej samej klasy, każdy w osobnym oknie ramki dokumentu MDI.

    Można obsługiwać tworzenie drugiego okna ramki na dokumencie.Użytkownik może wybrać polecenie nowe okno, aby otworzyć kolejną klatkę z widoku tego samego dokumentu, a następnie użyć dwie ramki, aby wyświetlić różne części dokumentu jednocześnie.Platforma obsługuje polecenie nowe okno w menu Okno aplikacji MDI, duplikując okna ramki początkowej i widok dołączonym do dokumentu.

  • Widok obiektów tej samej klasy, w tym samym oknie dokumentu w ramce.

    Splitter windows podzielenie obszaru widoku okna jednolitego dokumentu na wiele widoków oddzielnego dokumentu.Ramach tworzy wiele obiektów widoku z tej samej klasy widoku.Aby uzyskać więcej informacji, zobacz Windows rozdzielacza.

  • Przeglądaj obiekty różnych klas w oknie pojedynczą klatkę.

    W tym modelu, zmianę podziału okna, wiele widoków Podziel okno pojedynczą klatkę.Widoki są wykonane z różnych klas, każdy widok, zapewniając innym sposobem wyświetlenia tego samego dokumentu.Na przykład jeden widok może pokazać dokumentu edytora tekstów w trybie normalnym, podczas gdy inny widok pokazuje, że w trybie kontur.Formant rozdzielacza pozwala użytkownikowi dostosować względnych wielkości widoki.

Poniższej ilustracji podzielony na części, b i c, pokazuje trzech modelach interfejsu użytkownika w kolejności przedstawione powyżej.

Interfejsy użytkownika wieloma widokami

Interfejsy użytkownika wielu widoku

Środowisko framework zapewnia tych modeli, implementując polecenia nowe okno oraz dostarczając klasy CSplitterWnd, jak to opisano w Windows rozdzielacza.Można zaimplementować innych modeli za pomocą tych jako punktu początkowego.Aby uzyskać przykładowe programy, które ilustrują różne konfiguracje Zobacz widoki, ramka okna i Rozdzielacze, Próbek MFC.

Aby uzyskać więcej informacji o UpdateAllViews, zobacz klasy CView w Odwołanie MFC i Bazgroły próbki.

Wiele okien ramek

Polecenie nowe okno w menu Okno aplikacji MDI w celu utworzenia drugiego okna ramki na tym samym dokumencie.Aby uzyskać więcej informacji, zobacz temat pierwszy model na rysunku Wieloma widokami interfejsów użytkownika.

Rozdzielacz Windows

W oknie rozdzielacza okno jest lub może być podzielony na co najmniej dwa przewijalne okienek.Rozdzielacz formantu (lub "pole podziału") w ramce okna obok pasków przewijania zezwala użytkownikowi na dostosowanie względne rozmiary okienek.Każde okienko to jest widok na tym samym dokumencie.W "dynamiczne" rozdzielaczy widoki są tej samej klasy, jak pokazano w części b postać Wieloma widokami interfejsów użytkownika.W "static" rozdzielaczy widoki mogą być różnych klas.Windows Splitter obu rodzajów są obsługiwane przez klasę CSplitterWnd.

Windows splitter dynamiczne, widoki tej samej klasy umożliwiają użytkownikowi podzielić okna na wiele okienek do woli, a następnie przewiń w różnych okienkach, aby zobaczyć różne części dokumentu.Użytkownik może również unsplit okna, aby usunąć dodatkowe widoki.Windows splitter dodane do Bazgroły próbki są przykładem.Ten temat opisuje technikę tworzenia dynamicznych splitter windows.Okno dynamicznego podziału przedstawiono w części b postać Wieloma widokami interfejsów użytkownika.

Rozdzielacza statycznego okna, z widokiem różnych klas, uruchom w oknie Podziel na wiele okienek, każdy z różnych celów.Na przykład w edytorze języka Visual C++ mapa bitowa obrazu okno to zawiera dwa okienka obok siebie.W lewym okienku są wyświetlane naturalnej wielkości obrazu mapy bitowej.W okienku po prawej stronie wyświetla powiększony lub powiększony obraz samej mapy bitowej.Okienka są oddzielone "pasek podziału", które użytkownik może przeciągać do zmiany względnych rozmiary okienek.Okno rozdzielacza statycznego jest określony w części c postać Wieloma widokami interfejsów użytkownika.

Aby uzyskać więcej informacji, zobacz klasy CSplitterWnd w Odwołanie MFC i Próbek MFC.

Zobacz też

Koncepcje

Architektura dokument/widok