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.
Více než jedno zobrazení dokumentu můžete poskytnout vytvořením samostatných dat dokumentu a objektů zobrazení dokumentů pro váš editor. Některé případy, kdy by bylo užitečné další zobrazení dokumentu, jsou:
Podpora nového okna: Chcete, aby váš editor poskytoval dvě nebo více zobrazení stejného typu, aby uživatel, který už má v editoru otevřené okno, mohl otevřít nové okno výběrem příkazu Nové okno z nabídky Okno .
Podpora zobrazení formulářů a kódu: Chcete, aby editor poskytoval zobrazení různých typů. Visual Basic například poskytuje zobrazení formuláře i zobrazení kódu.
Další informace o tom najdete v postupu CreateEditorInstance v souboru EditorFactory.cs v projektu vlastního editoru vytvořeného šablonou balíčku sady Visual Studio. Další informace o tomto projektu naleznete v části Návod: Vytvoření vlastního editoru.
Synchronizace zobrazení
Při implementaci více zobrazení je datový objekt dokumentu zodpovědný za zachování všech zobrazení synchronizovaných s daty. Rozhraní pro zpracování událostí na VsTextBuffer můžete použít k synchronizaci více zobrazení s daty.
Pokud objekt nepoužíváte VsTextBuffer k synchronizaci více zobrazení, musíte implementovat vlastní systém událostí pro zpracování změn provedených v datovém objektu dokumentu. K udržování více zobrazení v aktualizovaném stavu můžete použít různé úrovně členitosti. Při maximálním nastavení členitosti se při psaní v jednom zobrazení ostatní zobrazení okamžitě aktualizují. S minimální granularitou se ostatní zobrazení neaktualizují, dokud nejsou aktivována.
Určení, zda jsou již otevřená data dokumentu
Spuštěná tabulka dokumentů (RDT) v integrovaném vývojovém prostředí (IDE) pomáhá sledovat, jestli už jsou data dokumentu otevřená, jak je znázorněno v následujícím diagramu.
Více zobrazení
Ve výchozím nastavení je každé zobrazení (objekt zobrazení dokumentu) obsaženo ve vlastním rámečku okna (IVsWindowFrame). Jak už jsme si ale poznamenali, data dokumentu se dají zobrazit v několika zobrazeních. Pokud to chcete povolit, Visual Studio zkontroluje RDT a určí, jestli je daný dokument už otevřený v editoru. Když integrované vývojové prostředí (IDE) volá CreateEditorInstance k vytvoření editoru, hodnota bez hodnoty NULL vrácená v parametru punkDocDataExisting indikuje, že dokument je již otevřen v jiném editoru. Další informace o funkci RDT naleznete v části Running Document Table.
Ve vaší IVsEditorFactory implementaci prozkoumejte datový objekt dokumentu vrácený v punkDocDataExisting a určete, zda jsou data dokumentu vhodná pro váš editor. (Například editor HTML by měl zobrazit jenom data HTML.) Pokud je to vhodné, měl by objekt pro vytváření editoru poskytnout druhé zobrazení dat.
punkDocDataExisting Pokud parametr není NULL, je možné, že datový objekt dokumentu je otevřený v jiném editoru, nebo je pravděpodobnější, že data dokumentu jsou již otevřena v jiném zobrazení se stejným editorem. Pokud jsou data dokumentu otevřená v jiném editoru, který vaše továrna editoru nepodporuje, Visual Studio neotevře vaši továrnu editoru. Další informace naleznete v tématu Postupy: Připojení zobrazení k datům dokumentu.