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.
Tento článek shrnuje postup implementace kontejneru a odkazuje vás na další články, které poskytují podrobnější vysvětlení implementace kontejnerů. Obsahuje také některé volitelné funkce OLE, které můžete chtít implementovat, a články popisující tyto funkce.
Příprava třídy odvozené od CWinApp
Inicializujte knihovny OLE voláním
AfxOleInitv členské funkciInitInstance.Voláním
CDocTemplate::SetContainerInfovInitInstancepřiřaďte prostředky nabídky a zrychlení používané při aktivaci vložené položky na místě. Další informace o tomto tématu najdete v tématu Aktivace.
Tyto funkce jsou poskytovány automaticky při použití Průvodce aplikací MFC k vytvoření aplikace kontejneru. Viz Vytvoření programu MFC EXE.
Příprava třídy zobrazení
Udržujte přehled o vybraných položkách udržováním ukazatele nebo seznamu ukazatelů, pokud podporujete vícenásobný výběr vybraných položek. Funkce
OnDrawmusí nakreslit všechny položky OLE.Přepište
IsSelected, abyste zkontrolovali, zda je položka předaná aktuálně vybraná.Implementace zpracování
OnInsertObjectzprávy pro zobrazení dialogového okna Vložit objekt.Implementujte obslužnou rutinu zprávy
OnSetFocuspro přenos fokusu ze zobrazení na aktivní vloženou položku OLE v místě.Implementujte obslužnou rutinu
OnSizezprávy, která informuje vloženou položku OLE, že potřebuje změnit jeho obdélník tak, aby odrážel změnu velikosti jeho obsahujícího zobrazení.
Vzhledem k tomu, že implementace těchto funkcí se výrazně liší od jedné aplikace po druhou, průvodce aplikací poskytuje pouze základní implementaci. Tyto funkce budete pravděpodobně muset přizpůsobit, aby vaše aplikace fungovala správně. Příklad najdete v ukázce CONTAINER .
Ke zpracování vložených a propojených položek
Odvození třídy z COleClientItem. Objekty této třídy představují položky, které byly vloženy nebo propojeny s dokumentem OLE.
Přepište
OnChange,OnChangeItemPositionaOnGetItemPosition. Tyto funkce zpracovávají změnu velikosti, umístění a úpravy vložených a propojených položek.
Průvodce aplikací odvodí třídu za vás, ale pravděpodobně budete muset přepsat OnChange a ostatní funkce uvedené s ním v kroku 2 v předchozím postupu. Kostru implementace je potřeba přizpůsobit pro většinu aplikací, protože tyto funkce jsou implementovány odlišně od jedné aplikace do další. Příklady najdete v ukázkách MFC DRAWCLI a CONTAINER.
Chcete-li podporovat OLE, je nutné do struktury nabídek aplikace kontejneru přidat několik položek. Další informace o těchto tématech najdete v tématu Nabídky a prostředky: Doplňky kontejnerů.
Můžete také chtít podporovat některé z následujících funkcí v kontejnerové aplikaci:
Místní aktivace při úpravě vložené položky
Další informace najdete v tématu Aktivace.
Vytváření položek OLE přetažením výběru ze serverové aplikace
Další informace naleznete v tématu přetahování OLE.
Odkazy na vložené objekty nebo kombinované aplikace typu kontejner/server.
Další informace naleznete v tématu Kontejnery: Pokročilé funkce.