Szablony i proces tworzenia dokumentu/widoku dokumentów
Do zarządzania złożonego procesu tworzenia dokumentów z windows ramki i widoków skojarzonych, ramach używa dwóch klas szablonu dokumentu: CSingleDocTemplate dla aplikacji SDI i CMultiDocTemplate dla aplikacji MDI.A CSingleDocTemplate można tworzyć i przechowywać jednego dokumentu z jednego typu na raz.A CMultiDocTemplate przechowuje listę wielu dokumentach jednego typu.
Niektóre aplikacje obsługują wiele typów dokumentów.Na przykład aplikacja może obsługiwać dokumentów tekstowych i graficznych dokumentów.W takich aplikacji gdy użytkownik wybierze polecenie Nowy w menu Plik okno dialogowe pokazuje listę możliwych nowych typów dokumentów, otworzyć.Dla każdego typu dokumentu obsługiwana aplikacja używa obiektu szablonu dokumentu distinct.Na poniższym rysunku pokazano konfigurację aplikacji MDI, który obsługuje dwa typy dokumentów i zawiera kilka otwartych dokumentów.
Aplikacja MDI z dwóch typów dokumentów
Szablony dokumentów są tworzone i obsługiwane przez obiekt aplikacji.Jednym z kluczowych zadań wykonanych podczas aplikacji InitInstance funkcja jest do konstruowania jeden lub więcej szablonów dokumentu rodzaju właściwe.Ta funkcja jest opisany w Tworzenie szablonu dokumentu.Obiektu aplikacji przechowuje wskaźnik do każdego szablonu dokumentu na liście jego szablonu i zapewnia interfejs do dodawania szablony dokumentów.
Jeśli trzeba obsługiwać dwa lub więcej typów dokumentów, należy dodać dodatkowe wywołanie AddDocTemplate dla każdego typu dokumentu.
Ikona jest zarejestrowany dla każdego szablonu dokumentu, na podstawie jego pozycji na liście aplikacji szablony dokumentów.Kolejność szablonów dokumentu zależy od kolejności, dodawane są wywołania AddDocTemplate.MFC zakłada, że pierwszy zasób ikonę aplikacji jest ikona aplikacji, następny zasób ikona jest pierwszą ikonę dokumentu i tak dalej.
Na przykład szablon dokumentu jest trzecia trzy dla aplikacji.Jeśli istnieje zasób ikonę aplikacji w indeksie 3, ikony jest używany w szablonie dokumentu.Jeśli nie, ikona z indeksem 0 jest używana jako domyślna.