Alternatywy dla architektury dokument/widok
Aplikacje MFC normalnie używać architektury/widok dokumentu do zarządzania informacjami, formaty plików i wizualną reprezentacją danych dla użytkowników.Dla większości aplikacji dla komputerów osobistych architektura/widok dokumentu jest Architektura aplikacji odpowiednie i skuteczne.Ta architektura oddziela dane od przeglądania i w większości przypadków, upraszcza aplikacji i zmniejsza zbędny kod.
Architektura/widok dokumentu nie jest jednak właściwe w niektórych sytuacjach.Rozważmy następujące przykłady:
Aplikacja napisana w C w systemie Windows są przenoszenie, można zakończyć swój port przed dodaniem Obsługa dokumentu/widoku do aplikacji.
Piszesz lekkie narzędzie może się okazać, że można zrobić bez architektury/widok dokumentu.
Jeśli oryginalny kod już mieszanki zarządzanie danymi z danymi wyświetlanie, przenoszenie kod, aby model/widok dokumentu nie jest warte wysiłku ponieważ dwa muszą być rozdzielone.Warto pozostawić kod jak jest.
Aby utworzyć aplikację, która nie korzysta z architektury/widok dokumentu, wyczyść Widok dokumentu/architecture obsługuje pole wyboru w kroku 1 Kreatora aplikacji MFC.Zobacz Kreatora aplikacji MFC Aby uzyskać szczegółowe informacje.
[!UWAGA]
Okno aplikacji utworzone przez Kreatora aplikacji MFC nie należy używać architektury/widok dokumentu, więc obsługuje architektury/widok dokumentu pole wyboru jest nieaktywne, jeżeli wybierz typ aplikacji okno dialogowe.
Kreatorzy programu Visual C++, a także Edytory źródła i okno dialogowe, pracować z generowaną aplikację tak samo, jak z innych aplikacji wygenerowany przez kreatora.Aplikacja może obsługiwać paski narzędzi, paski przewijania i pasek stanu, a ma o pole.Aplikacja nie zarejestruje wszelkie szablony dokumentów, a nie będzie zawierać klasą dokumentu.
Należy zauważyć, że wygenerowany aplikacji ma klasy view, CChildView, pochodzące z CWnd.Pozycje jedno wystąpienie klasy widoku w ramach systemu windows ramki utworzone przez aplikację i tworzy MFC.MFC nadal wymusza użycie widoku okna, ponieważ to upraszcza pozycjonowanie i zarządzanie zawartością aplikacji.Można dodać kod obraz do OnPaint tej klasy.Kod powinien dodać paski przewijania do widoku, a nie do ramki.
Ponieważ architektura widok/dokumentów dostarczonych przez MFC jest odpowiedzialne za wykonanie wielu podstawowych funkcji aplikacji, jej nieobecności w projekcie oznacza, że są odpowiedzialne za wykonanie wielu ważnych funkcji aplikacji:
Dostarczone przez Kreatora aplikacji MFC, menu aplikacji zawiera tylko New i Exit polecenia na pliku menu. ( New Polecenie jest obsługiwane tylko dla aplikacji MDI, wsparcie nie SDI aplikacji bez dokumentu/widoku.) Zasób wygenerowany menu nie obsługuje listy MRU (ostatnio używane).
Należy dodać funkcje obsługi i implementacji dla wszelkich poleceń, które mają wspierać aplikacji, łącznie z Otwórz i zapisać na pliku menu.MFC normalnie zawiera kod do obsługi tych funkcji, ale ta obsługa jest ściśle związana z architekturą/widok dokumentu.
Narzędzi aplikacji, jeden, żądanie będzie minimalny.
Zdecydowanie zaleca się użyć Kreatora aplikacji MFC do tworzenia aplikacji bez architektury/widok dokumentu, ponieważ Kreator gwarantuje poprawne architektura MFC.Jednak jeśli za pomocą kreatora należy unikać, Oto kilka metod z pominięciem architektury/widok dokumentu w kodzie:
Potraktuj dokument, jakby nieużywane dodatek i wdrożenie danych zarządzania kodu w klasie widok, jak wynika z powyższego.Obciążenia dla dokumentu jest stosunkowo niska.Pojedynczy CDocument obiektu wiąże się z niewielką ilość obciążenie przez siebie, a także małe obciążenie związane z CDocument's oprzeć klas, klasy i CObject.Obie klasy te ostatnie są małe.
Zadeklarowane w CDocument:
Dwa CString obiektów.
Trzy BOOLs.
Jeden CDocTemplate wskaźnik.
Jeden CPtrList obiekt, który zawiera listę widoków dokumentów.
Ponadto dokument wymaga ilość czasu na tworzenie obiektu dokumentu, jego wyświetlanie obiektów, okno ramek i obiektu szablonu dokumentu.
Traktuj jako dodatki nieużywane dokumentu i widok.Umieścić zarządzanie danymi i kod rysunku w oknie ramki, a nie widok.To podejście jest bliżej model programowania w języku C.
Zastąpić części ramy MFC, które Tworzenie dokumentu i widoku, aby wyeliminować tworzenie ich w ogóle.Rozpocznie się proces tworzenia dokumentu z wezwaniem do CWinApp::AddDocTemplate.Wyeliminowanie tego wywołania z klasy aplikacji InitInstance Członkowskich działać, a zamiast tego utworzyć okna ramki w InitInstance samodzielnie.Kod zarządzania danych należy umieścić w swojej klasy okna ramki.Ilustruje proces tworzenia dokumentu/view Tworzenie dokumentu/View.To jest więcej pracy i wymaga głębsze zrozumienie RAM, ale uwalnia użytkownika wyłącznie z obciążenie/widoku dokumentu.
Artykuł MFC: za pomocą klasy bazy danych bez dokumentów i widoków daje bardziej konkretnymi przykładami alternatywne/widok dokumentu w kontekście aplikacji baz danych.