Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Standardní vztah mezi dokumentem, jeho zobrazením a oknem rámečku je popsán v části Vytvoření dokumentu/zobrazení. Mnoho aplikací podporuje jeden typ dokumentu (ale možná více otevřených dokumentů tohoto typu) s jedním zobrazením dokumentu a pouze jedním oknem rámečku na dokument. Některé aplikace ale můžou potřebovat změnit jednu nebo více těchto výchozích hodnot.
O čem chcete vědět víc
Více typů dokumentů
Průvodce aplikací MFC vytvoří jednu třídu dokumentu za vás. V některých případech ale možná budete muset podporovat více než jeden typ dokumentu. Vaše aplikace může například potřebovat sešity a grafy. Každý typ dokumentu je reprezentován vlastní třídou dokumentu a pravděpodobně také vlastní třídou zobrazení. Když uživatel zvolí příkaz Nový soubor, zobrazí rozhraní dialogové okno se seznamem podporovaných typů dokumentů. Pak vytvoří dokument typu, který uživatel zvolí. Každý typ dokumentu se spravuje pomocí vlastního objektu šablony dokumentu.
Pokud chcete vytvořit další třídy dokumentů, přečtěte si téma Přidání třídy. Jako typ třídy zvolte CDocument , ze které chcete odvodit požadované informace o dokumentu, a zadejte je. Pak implementujte data nové třídy.
Pokud chcete rozhraní informovat o vaší dodatečné třídě dokumentu, musíte přidat druhé volání AddDocTemplate do přepsání InitInstance ve vaší aplikační třídě. Další informace najdete v tématu Šablony dokumentů.
Více zobrazení
Mnoho dokumentů vyžaduje jenom jedno zobrazení, ale je možné podporovat více než jedno zobrazení jednoho dokumentu. Aby bylo možné implementovat více zobrazení, objekt dokumentu uchovává seznam jeho zobrazení, poskytuje členské funkce pro přidávání a odebírání zobrazení a poskytuje členskou funkci UpdateAllViews , která informuje více zobrazení o změně dat dokumentu.
MFC podporuje tři běžná uživatelská rozhraní vyžadující více zobrazení ve stejném dokumentu. Jedná se o tyto modely:
Zobrazit objekty stejné třídy, každý v samostatném okně s rámečkem dokumentu MDI.
Možná budete chtít podporovat vytvoření druhého okna rámce v dokumentu. Uživatel může zvolit příkaz Nové okno, který otevře druhý rámeček se zobrazením stejného dokumentu a pak pomocí těchto dvou snímků zobrazí různé části dokumentu současně. Rámec podporuje příkaz Nové okno v nabídce Okno pro aplikace MDI tím, že duplikuje úvodní rámečkové okno a zobrazení připojené k dokumentu.
Umožňuje zobrazit objekty stejné třídy ve stejném okně rámečku dokumentu.
Rozdělená okna rozdělují prostor zobrazení jednoho okna dokumentu na několik samostatných zobrazení dokumentu. Architektura vytvoří více objektů zobrazení ze stejné třídy zobrazení. Další informace naleznete v tématu Splitter Windows.
Zobrazit objekty různých tříd v jednom rámcovém okně.
V tomto modelu, který je variantou děleného okna, sdílí více zobrazení jedno rámcové okno. Zobrazení jsou vytvořena z různých tříd, přičemž každé zobrazení poskytuje jiný způsob zobrazení stejného dokumentu. Jedno zobrazení může například zobrazit dokument pro zpracování textu v normálním režimu, zatímco druhé zobrazení ho zobrazuje v režimu osnovy. Rozdělovač umožňuje uživateli upravit relativní velikosti zobrazení.
Následující obrázek, rozdělený na části a, b a c, ukazuje tři modely uživatelského rozhraní v pořadí uvedeném výše.
uživatelská rozhraní Multiple-View
Architektura poskytuje tyto modely implementací příkazu New Window a poskytnutím třídy CSplitterWnd, jak je popsáno v splitter Windows. Jako výchozí bod můžete implementovat jiné modely. Ukázkové programy, které ilustrují různé konfigurace zobrazení, rámcových oken a rozdělovačů, najdete v tématu Ukázky MFC.
Další informace o UpdateAllViews naleznete v třídě CView v MFC Reference a Scribble příklad.
Více oken s rámečkem
K vytvoření druhého okna ve stejném dokumentu můžete použít příkaz Nové okno v nabídce Okno pro aplikace MDI. Další informace najdete v prvním modelu na obrázku diagramu Multiple-View uživatelské rozhraní.
Rozdělovač oken
V rozděleném okně může být okno rozděleno do dvou nebo více posuvných panelů. Ovládací prvek rozdělovače (nebo "rozdělovací prvek") v rámu okna vedle posuvných lišt umožňuje uživateli upravit velikost jednotlivých panelů. Každé podokno je zobrazení ve stejném dokumentu. V "dynamických" děličích jsou pohledy stejné třídy, jak je znázorněno na obrázku v části b Multiple-View uživatelská rozhraní. V "statických" rozdělovačích mohou být zobrazení různých tříd. Rozdělovací okna obou typů jsou podporována třídou CSplitterWnd.
Dynamická okna rozdělovačů se zobrazeními stejné třídy umožňují uživateli rozdělit okno na více podoken a pak se posouvat do různých podoken, aby viděl různé části dokumentu. Uživatel může také zrušit rozdělení okna a odebrat další pohledy. Příkladem jsou okna rozdělovače přidaná do ukázky Scribble. Toto téma popisuje techniku vytváření dynamických rozdělovacích oken. Dynamické rozdělovací okno je zobrazeno v části b obrázku Multiple-View uživatelských rozhraní.
Statická rozdělovací okna, se zobrazeními různých tříd, začínají oknem rozděleným do několika podoken, z nichž každá má jiný účel. Například v editoru bitmap ve Visual C++ se v okně obrázku zobrazují vedle sebe dvě podokna. V levém podokně se zobrazí obrázek rastrového obrázku o životní velikosti. V pravém podokně se zobrazí přiblížený obrázek stejného rastrového obrázku. Podokna jsou oddělena "rozdělovačem", který uživatel může přetáhnout a změnit relativní velikosti podoken. Statické rozdělovací okno je zobrazeno v části c obrázku Multiple-View uživatelských rozhraní.
Pro více informací se podívejte na CSplitterWnd v Referenci MFC a v Ukázkách MFC.