Alternativy k architektuře dokument/zobrazení
Aplikace knihovny MFC architekturu document/view normálně používat ke správě informací, formátů a vizuální reprezentace dat uživatelům.Pro většinu aplikací architekturu document/view je architektura aplikace přiměřený a účinný.Tato architektura odděluje data ze zobrazení a ve většině případů, zjednodušuje aplikace a redukuje nadbytečný kód.
Však není vhodné pro některé situace architekturu document/view.Zvažte tyto příklady:
Pokud provádíte přenos aplikace napsané v C pro Windows, můžete k dokončení port před přidáním podpora dokument/pohled do vaší aplikace.
Pokud vytváříte lehký nástroj, je možné provést bez architekturu document/view.
Pokud původní kód již směsi správy dat s daty zobrazení pohyblivého kódu pro dokument/view model stojí ne úsilí vzhledem k tomu, že je třeba oddělit dvě.Můžete chtít nechat kód, jak je.
Chcete-li vytvořit aplikaci, která se nepoužívají architekturu document/view, zrušte Podpora architektury dokument/pohled políčko v kroku 1 Průvodce aplikace knihovny MFC.Viz Průvodce aplikací knihovny MFC podrobnosti.
[!POZNÁMKA]
Dialogové aplikace vyrobené pomocí Průvodce aplikací knihovny MFC architekturu document/view, nepoužívejte proto Podpora architektury dokument/pohled je zakázáno zaškrtávací pole, pokud jste vybrali typ dialogového okna aplikace.
Průvodci Visual C++, jakož i zdroje a dialogové okno Editor, stejně jako ostatní generované průvodcem aplikace pracovat s generované aplikací.Aplikace podporuje panely nástrojů, posuvníky a stavový řádek a má o pole.Aplikace nebude registrovat všechny šablony dokumentu a nebude obsahovat třídy dokumentu.
Poznámka, že generované aplikace obsahuje zobrazení třídy CChildView, odvozené z CWnd.Knihovna MFC vytvoří a umístí jednu instanci třídy zobrazení v okně rámce vytvořené v aplikaci.MFC stále zajišťuje pomocí okna zobrazení, protože zjednodušuje umístění a správě obsahu aplikace.Můžete přidat kód Malování OnPaint členy této třídy.Váš kód by měl přidat posuvníky, zobrazení, nikoli na snímek.
Vzhledem k tomu, že je odpovědný za provádění mnoha základních funkcí aplikace architekturu document/view, poskytnuté knihovnou MFC, jeho nepřítomnost v projektu znamená, že odpovědné za provádění mnoho důležitých funkcí aplikace:
Podle Průvodce aplikace knihovny MFC, nabídka aplikace obsahuje pouze New a Exit na příkazy souboru nabídky. ( New Příkaz je podporován pouze pro aplikace MDI, není aplikace SDI bez Document/View podporují.) Nabídka generované zdrojů nebude podporovat seznam MRU (naposledy použité).
Je třeba přidat obslužné rutiny funkce a implementace pro všechny příkazy, které budou podporovat aplikace, včetně Otevřít a Uložit na souboru nabídky.Knihovna MFC poskytuje kód pro podporu těchto funkcí, normálně, ale, že podpora je pevně vázán na architekturu document/view.
Panel nástrojů pro aplikaci, pokud je požadováno, bude minimální.
Je doporučeno použít Průvodce aplikací knihovny MFC k vytvoření aplikací bez architekturu document/view, protože zaručuje správné architektury knihovny MFC, průvodce.Pokud je třeba se vyvarovat použití průvodce, zde jsou však několik přístupů pro vynechání architektury Dokument/view v kódu:
Zpracování dokumentu jako nepoužívané appendage a implementovat kód správy dat v zobrazení třídy navržené výše.Režie dokumentu je relativně nízká.Jeden CDocument objekt vzniká malé množství režie sám o sobě, plus malé režijní náklady na CDocumentprvku základní třídy, třídy CCmdTarget a třídy CObject.Obě tyto třídy jsou malé.
Deklarované v CDocument:
Dva CString objekty.
Tři BOOLs.
Jeden CDocTemplate ukazatele.
Jeden CPtrList objekt, který obsahuje seznam zobrazení dokumentu.
Kromě toho dokumentu vyžaduje čas vytvoření objektu dokumentu, jeho zobrazení objektů, okna rámce a objektu šablony dokumentu.
Zpracování dokumentu a zobrazení jako nepoužívané postranní řetězce.Správa dat a výkresu kód, umístěte v okně rámce spíše než zobrazení.Tento přístup je blíže k jazyka C, programovacího modelu.
Přepište části rozhraní knihovny MFC, které vytvoření dokumentu a zobrazení k odstranění ve všech jejich vytvoření.Proces vytváření dokumentu začíná volání CWinApp::AddDocTemplate.Odstranit toto volání z třídy aplikace InitInstance členské funkce a místo toho vytvořit okno rámce v InitInstance sami.Ukládat data management kód ve třídě okna rámce.Procesu vytváření dokumentu/zobrazení je znázorněn v Vytváření Document/View.To je náročnější a vyžaduje hlubší porozumění rámci, ale uvolní se výhradně z režie dokument/pohled.
V článku MFC: použití databáze tříd bez dokumentů a zobrazení konkrétnější příklady alternativy dokument/view v rámci databázové aplikace.