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. Inicializace knihoven OLE voláním AfxOleInitInitInstance členské funkce.

  2. InitInstance Voláním přiřaďte CDocTemplate::SetContainerInfo prostředky nabídky a akcelerátoru 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řepsáním IsSelected zkontrolujete, jestli je položka předaná aktuálně vybraná.

  3. Implementujte obslužnou rutinu OnInsertObject zprávy pro zobrazení dialogového okna Vložit objekt .

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

  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 .

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řepsání OnChange, OnChangeItemPositiona 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 OLE přetažení.

  • 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