Sdílet prostřednictvím


Nabídky a prostředky: Sloučení nabídky

Tento článek podrobně popisuje kroky potřebné k tomu, aby aplikace dokumentů OLE zpracovávaly vizuální úpravy a místní aktivaci správně. Místní aktivace představuje výzvu pro kontejnerové i serverové aplikace (komponent). Uživatel zůstane ve stejném okně rámce (v kontextu dokumentu kontejneru), ale ve skutečnosti spouští jinou aplikaci (server). To vyžaduje koordinaci mezi prostředky kontejnerových a serverových aplikací.

Témata probíraná v tomto článku zahrnují:

Rozložení nabídek

Prvním krokem je souřadnice rozložení nabídek. Kontejnerové aplikace by měly vytvořit novou nabídku, která se použije pouze v případě, že jsou vložené položky aktivovány. Minimálně by se tato nabídka měla skládat z následujících položek v uvedeném pořadí:

  1. Nabídka Soubor shodná s nabídkou, která se používá při otevření souborů. (Před další položkou se obvykle nenakládají žádné další položky nabídky.)

  2. Dva po sobě jdoucí oddělovače

  3. Nabídka okna shodná s nabídkou, která se používá při otevření souborů (pouze v případě, že je kontejnerová aplikace v aplikaci MDI). Některé aplikace můžou mít jiné nabídky, například nabídku Možnosti, která patří do této skupiny, která zůstává v nabídce při aktivaci vložené položky.

    Poznámka

    Mohou existovat další nabídky, které ovlivňují zobrazení dokumentu kontejneru, například Lupa. Tyto nabídky kontejneru se zobrazí mezi dvěma oddělovači v tomto prostředku nabídky.

Aplikace serveru (komponent) by také měly vytvořit novou nabídku určenou speciálně pro místní aktivaci. Měla by se podobat nabídce použité při otevření souborů, ale bez položek nabídky, jako je Soubor a Okno, které místo dat manipulují s dokumentem serveru. Tato nabídka se obvykle skládá z následujících:

  1. Nabídka Upravit shodná s nabídkou použitou při otevření souborů

  2. Oddělovač.

  3. Nabídky pro úpravy objektů, jako je například nabídka Pero v ukázkové aplikaci Scribble

  4. Oddělovač.

  5. Nabídka Nápovědy

Podívejte se například na rozložení některých ukázkových místních nabídek pro kontejner a server. Podrobnosti o každé položce nabídky byly odebrány, aby byl příklad jasnější. Místní nabídka kontejneru obsahuje následující položky:

IDR_CONTAINERTYPE_CNTR_IP MENU PRELOAD DISCARDABLE
BEGIN
    POPUP "&File C1"
    MENUITEM SEPARATOR
    POPUP "&Zoom C2"
    MENUITEM SEPARATOR
    POPUP "&Options C3"
    POPUP "&Window C3"
END

Po sobě jdoucí oddělovače označují, kam má přejít první část nabídky serveru. Teď se podívejte na místní nabídku serveru:

IDR_SERVERTYPE_SRVR_IP MENU PRELOAD DISCARDABLE
BEGIN
    POPUP "&Edit S1"
    MENUITEM SEPARATOR
    POPUP "&Format S2"
    MENUITEM SEPARATOR
    POPUP "&Help S3"
END

Oddělovače zde označují, kam by měla přejít druhá skupina položek nabídky kontejneru. Výsledná struktura nabídek při aktivaci objektu z tohoto serveru v tomto kontejneru vypadá takto:

BEGIN
    POPUP "&File C1"
    POPUP "&Edit S1"
    POPUP "&Zoom C2"
    POPUP "&Format S2"
    POPUP "&Options C3
    POPUP "&Window C3"
    POPUP "&Help S3"
END

Jak vidíte, oddělovače byly nahrazeny různými skupinami nabídky každé aplikace.

Tabulky akcelerátoru přidružené k místní nabídce by také měly být dodány serverovou aplikací. Kontejner je začlení do vlastních tabulek akcelerátorů.

Při aktivaci vložené položky načte architektura místní nabídku. Potom požádá serverovou aplikaci o místní aktivaci a vloží ji tam, kde jsou oddělovače. Takto se nabídky kombinují. Z kontejneru získáte nabídky pro provoz v souboru a umístění okna a dostanete nabídky ze serveru pro provoz položky.

Panely nástrojů a stavové pruhy

Serverové aplikace by měly vytvořit nový panel nástrojů a uložit jeho rastrový obrázek do samostatného souboru. Aplikace generované průvodcem ukládají tento rastrový obrázek do souboru s názvem ITOOLBAR.BMP. Nový panel nástrojů nahrazuje panel nástrojů aplikace kontejneru při aktivaci položky serveru a měl by obsahovat stejné položky jako běžný panel nástrojů, ale odeberte ikony představující položky v nabídkách Soubor a Okno.

Tento panel nástrojů se načte do odvozené COleIPFrameWndtřídy vytvořené průvodcem aplikace. Stavový řádek zpracovává aplikace kontejneru. Další informace o implementaci místních oken s rámečkem naleznete v tématu Servery: Implementace serveru.

Viz také

Nabídky a prostředky (OLE)
Aktivace
Servery
Kontejnery