Udostępnij za pośrednictwem


Dokumenty, widoki i struktura

W centrum struktury MFC znajdują się pojęcia dotyczące dokumentu i widoku. Dokument to obiekt danych, z którym użytkownik wchodzi w interakcję w sesji edycji. Jest on tworzony przez polecenie Nowy lub Otwórz w menu Plik i jest zwykle zapisywany w pliku. (Standardowe dokumenty MFC, pochodzące z klasy CDocument, różnią się od dokumentów aktywnych i dokumentów złożonych OLE). Widok to obiekt okna, za pomocą którego użytkownik wchodzi w interakcję z dokumentem.

Obiekty kluczy w uruchomionej aplikacji to:

  • Obiekty wątku

    Jeśli aplikacja tworzy oddzielne wątki wykonywania — na przykład w celu wykonywania obliczeń w tle — użyjesz klas pochodnych z CWinThreadklasy . CWinApp sam element pochodzi z CWinThread i reprezentuje podstawowy wątek wykonywania (lub główny proces) w aplikacji. MFC można również używać w wątkach pomocniczych.

  • Obiekt aplikacji

    Klasa aplikacji (pochodna z CWinApp) steruje wszystkimi powyższymi obiektami i określa zachowanie aplikacji, takie jak inicjowanie i oczyszczanie. Jeden obiekt aplikacji i tylko aplikacja tworzy szablony dokumentów dla wszystkich typów dokumentów, które obsługuje aplikacja i zarządza nimi.

  • Szablon lub szablony dokumentu

    Szablon dokumentu organizuje tworzenie dokumentów, widoków i okien ramowych. Określona klasa szablonu dokumentu, pochodząca z klasy CDocTemplate, tworzy wszystkie otwarte dokumenty jednego typu i zarządza nimi. Aplikacje obsługujące więcej niż jeden typ dokumentu mają wiele szablonów dokumentów. Użyj klasy CSingleDocTemplate dla aplikacji SDI lub użyj klasy CMultiDocTemplate dla aplikacji MDI.

  • Okna ramowe

    Widoki są wyświetlane wewnątrz "okien ramek dokumentu". W aplikacji SDI okno ramki dokumentu jest również "głównym oknem ramowym" dla aplikacji. W aplikacji MDI okna dokumentów są oknami podrzędnym wyświetlanymi w głównym oknie ramowym. Pochodna główna klasa okien ramowych określa style i inne cechy okien ramowych, które zawierają widoki. Jeśli musisz dostosować okna ramowe, należy dostosować CFrameWnd okno ramki dokumentu dla aplikacji SDI. CMDIFrameWnd Utwórz z programu , aby dostosować główne okno ramki dla aplikacji MDI. Utwórz również klasę z CMDIChildWnd , aby dostosować każdy odrębny rodzaj okien ramek dokumentów MDI, które obsługuje aplikacja.

  • Dokument lub dokumenty.

    Klasa dokumentu (pochodna z CDocument) określa dane aplikacji.

    Jeśli chcesz, aby funkcje OLE w aplikacji pochodziły z klasy dokumentów lub jednej z COleDocument jej klas pochodnych, w zależności od typu potrzebnych funkcji.

  • Widok lub widoki.

    Klasa widoku (pochodna ) CViewto "okno użytkownika w danych". Klasa widoku kontroluje sposób, w jaki użytkownik widzi dane dokumentu i współdziała z nim. W niektórych przypadkach możesz chcieć, aby dokument miał wiele widoków danych.

    Jeśli potrzebujesz przewijania, pochodzi z .CScrollView Jeśli widok ma interfejs użytkownika, który został ułożony w zasobie szablonu okna dialogowego, pochodzą z elementu CFormView. W przypadku prostych danych tekstowych użyj polecenia lub pochodzą z CEditViewelementu . W przypadku aplikacji dostępu do danych opartej na formularzach, takiej jak program wprowadzania danych, pochodzą z CRecordView (dla ODBC). Dostępne są również klasy CTreeView, CListViewi CRichEditView.

W uruchomionej aplikacji te obiekty współpracują z akcjami użytkownika, powiązanymi ze sobą za pomocą poleceń i innych komunikatów. Pojedynczy obiekt aplikacji zarządza co najmniej jednym szablonem dokumentów. Każdy szablon dokumentu tworzy co najmniej jeden dokument i zarządza nim (w zależności od tego, czy aplikacja jest sdI, czy MDI). Użytkownik wyświetla i manipuluje dokumentem za pośrednictwem widoku zawartego w oknie ramowym. Na poniższej ilustracji przedstawiono relacje między tymi obiektami dla aplikacji SDI.

Diagram of the objects in a running SDI application.
Obiekty w uruchomionej aplikacji SDI

W pozostałej części artykułów wyjaśniono, w jaki sposób narzędzia platformowe, Kreator aplikacji MFC i edytory zasobów tworzą te obiekty, jak współpracują ze sobą i jak są używane w programowaniu. Dokumenty, widoki i okna ramowe zostały omówione bardziej szczegółowo w temacie Obiekty okien i Architektura dokumentu/widoku.

Zobacz też

Używanie klas do pisania aplikacji dla systemu Windows