Krzysztof Mossakowski
Materiały dla studentów
 

Wzorzec dokumentu
(klasa CDocTemplate)

MFC
Spis treści

Wzorzec dokumentu
klasa CDocTemplate
Informacje ogólne
Najczęstszy sposób wykorzystania
Znajdowanie wzorców i dokumentów
Hierarchia klas

  •  Informacje ogólne

    • Wzorzec dokumentu jest obiektem wiążącym ze sobą trzy główne składowe aplikacji opartej na architekturze dokument/widok:

    • Abstrakcyjną klasą bazową dla wzorców dokumentów CDocTemplate, podstawowe klasy używane w aplikacjach, to:

      • CSingleDocTemplate - dla aplikacji SDI

      • CMultiDocTemplate - dla aplikacji MDI

[początek strony]

  •  Najczęstszy sposób wykorzystania

    • Dla każdego typu (klasy) dokumentu występującego w aplikacji musi być zdefiniowany odrębny wzorzec dokumentu
    • Wzorce dokumentów definiuje się w metodzie CWinApp::InitInstance, która jest wykonywana przed rozpoczęciem pracy aplikacji
    • Wzorce dokumentów tworzone są w sposób dynamiczny i zostaną automatycznie zwolnione
      • do tworzenia nowych wzorców dokumentów wykorzystywana jest metoda CWinApp::AddDocTemplate
      • przykład utworzenia wzorca dokumentu (fragment kodu z CWinApp::InitInstance):
        AddDocTemplate( new CMultiDocTemplate( 
                           IDR_MYDOC,
                           RUNTIME_CLASS( CMyDoc ),
                           RUNTIME_CLASS( CMDIChildWnd ),
                           RUNTIME_CLASS( CMyView )));
    • Wzorzec dokumentu zawiera metody do wczytywania i tworzenia nowego dokumentu wywoływane przy odpowiednich akcjach podejmowanych przez użytkownika, w wyniku działania tych metod automatycznie powstają obiekty wszystkich trzech klas zdefiniowanych we wzorcu

[początek strony]

  •  Znajdowanie wzorców i dokumentów

    • Wszystkie wzorce dokumentów można znaleźć używając metod: CWinApp::GetFirstDocTemplatePosition i CWinApp::GetNextDocTemplate

    • Wszystkie dokumenty pochodzące z jednego wzorca można znaleźć używając metod: CDocTemplate::GetFirstDocPosition i CDocTemplate::GetNextDoc

[początek strony]

  •  Hierarchia klas

    CObject - informacja w trakcie wykonywania, dynamiczne tworzenie, serializacja
        CCmdTarget - obsługa komunikatów Windows
            CDocTemplate

[początek strony]