Sdílet prostřednictvím


TN025: Dokument, zobrazení a vytvoření rámce

[!POZNÁMKA]

Následující technické poznámce nebyly aktualizovány od byla poprvé zahrnuta v dokumentaci online.Proto některé postupy a témata mohou být nesprávné nebo zastaralé.Nejnovější informace je vhodné vyhledat téma zájmu v dokumentaci online index.

Tato poznámka popisuje vytvoření a vlastnictví problémy WinApps, DocTemplates, dokumentů, snímků a zobrazení.

WinApp

Je jedna CWinApp objektu v systému.

Je staticky konstruovány a iniciovány rámci provádění vnitřní WinMain.Musí pocházet z CWinApp podnikat užitečné (výjimka: knihovny DLL rozšíření by neměl mít CWinApp instance – inicializace provést DllMain místo).

Ten CWinApp objekt vlastní seznam šablon dokumentů ( CPtrList).Je na žádost jednoho nebo více šablonu dokumentu.DocTemplates jsou obvykle načteny ze souboru prostředků (to znamená pole řetězců) v CWinApp::InitInstance.

pTemplate = new CDocTemplate(IDR_MYDOCUMENT, ...);
AddDocTemplate(pTemplate);

Ten CWinApp windows všech snímků v aplikaci je vlastníkem objektu.Hlavní rámec okno aplikace měla být uložena v CWinApp::m_pMainWnd; obvykle můžete nastavit m_pMainWnd v InitInstance provedení, pokud nebude mít nechat AppWizard nemáte.U rozhraní jediného dokumentu (SDI) jeden je CFrameWnd , který slouží jako hlavní rámec okno aplikace, jakož i pouze rámeček okna dokumentu.U rozhraní více dokumentů (MDI) je MDI-rámce (třída CMDIFrameWnd), který slouží jako hlavní rámec okno aplikace obsahující všechny podřízené CFrameWnds.Třídy je každé podřízené okno CMDIChildWnd (odvozené z CFrameWnd) a slouží jako potenciálně mnoho rám okna dokumentu.

DocTemplates

CDocTemplate Je tvůrce a správce dokumentů.Vlastní dokumenty, které vytvoří.Pokud aplikace používá níže popsané přístup podle prostředků, ji nebudou muset odvodit z CDocTemplate.

Aplikace SDI třídy CSingleDocTemplate vede záznamy o jeden otevřený dokument.Aplikace MDI třídy CMultiDocTemplate , vede seznam ( CPtrList) právě otevřené dokumenty vytvořené z této šablony.CDocTemplate::AddDocumenta CDocTemplate::RemoveDocument poskytují virtuální členské funkce pro přidání nebo odebrání šablony dokumentu.CDocTemplateje přítel z CDocument proto doporučujeme nastavit chráněné CDocument::m_pDocTemplate ukazatel zpět zpět do šablony dokumentu, které byl dokument vytvořen.

CWinAppzpracovává výchozí OnFileOpen provádění zase dotaz na všechny šablony dokumentu.Provádění zahrnuje hledáte již otevřené dokumenty a rozhodování o tom, jaký formát otevřít v nové dokumenty.

CDocTemplatespravuje uživatelské rozhraní vazba dokumentů a rámců.

CDocTemplatesleduje počet počet nepojmenované dokumenty.

CDocument

A CDocument je vlastněn CDocTemplate.

Dokumenty mají seznam aktuálně otevřené zobrazení (odvozené z CView), prohlížíte dokument ( CPtrList).

Dokumenty nelze vytvořit nebo zničit zobrazení, ale jsou připojeny k sobě po jejich vytvoření.Při zavření dokumentu (to znamená až soubor/zavřít), budou uzavřeny všechny připojené zobrazení.Po zavření poslední zobrazení dokumentu (to znamená, nebo zavřít okno) dokumentu bude uzavřen.

CDocument::AddView, RemoveView Rozhraní slouží k zobrazení seznamu.CDocument je přítel z CView mohli nastavit jsme CView::m_pDocument ukazatel zpět.

CFrameWnd

A CFrameWnd (také známé jako snímek) hraje stejnou roli jako v MFC 1.0, ale nyní CFrameWnd třídy je určen k použití v mnoha případech bez vyplývající nové třídy.Odvozené třídy CMDIFrameWnd a CMDIChildWnd jsou také rozšířené tak mnoho standardní příkazy jsou již implementováno.

CFrameWnd Je zodpovědný za vytváření rámce v oblasti klienta v systému windows.Obvykle je jeden hlavní okno vyplňování klientské oblasti snímku.

MDI rámeček okna klienta oblast vyplněna ovládací MDICLIENT, který je zase nadřazeného všechny rámce windows podřízený formulář MDI.Okno aplikace SDI rámeček nebo rámeček okna aplikace podřízený formulář MDI klientské oblasti obvykle vyplněno CView-odvozené objektu okna.U CSplitterWnd, je vyplněn klientské oblasti zobrazení CSplitterWnd objektu okna a CView-okno odvozené objekty (jeden na rozdělení podokna) jsou vytvořeny jako podřízeného okna CSplitterWnd.

Viz také

Další zdroje

Technické poznámky podle čísla

Technické poznámky podle kategorie