Sdílet prostřednictvím


Kontejnery: Implementace kontejneru

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

  1. Inicializujte knihovny OLE voláním AfxOleInit v členské funkci InitInstance.

  2. Voláním CDocTemplate::SetContainerInfo v InitInstance př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í

  1. 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 OnDraw musí nakreslit všechny položky OLE.

  2. Přepište IsSelected, abyste zkontrolovali, zda je položka předaná aktuálně vybraná.

  3. Implementace zpracování OnInsertObject zprávy pro zobrazení dialogového okna Vložit objekt.

  4. Implementujte obslužnou rutinu zprávy OnSetFocus pro přenos fokusu ze zobrazení na aktivní vloženou položku OLE v místě.

  5. Implementujte obslužnou rutinu OnSize zprá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

  1. Odvození třídy z COleClientItem. Objekty této třídy představují položky, které byly vloženy nebo propojeny s dokumentem OLE.

  2. Přepište OnChange, OnChangeItemPosition a OnGetItemPosition. 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.

Viz také

kontejnery
Kontejnery: Klientské položky