Sdílet prostřednictvím


Servery: Implementace oken s rámečkem na místě

Tento článek vysvětluje, co je nutné provádět přímo v rámci windows vizuální úpravy aplikace serveru Pokud použijete Průvodce aplikací vytvořit serverovou aplikaci.Místo s postupem uvedeným v tomto článku můžete použít existující třídu okna rámce v místě aplikace wizard–generated aplikace nebo vzorek, který je součástí Visual C++.

Chcete-li deklarovat třídu okna rámce v místě

  1. Odvodit třídu okna rámce v místě z COleIPFrameWnd.

    • Použití DECLARE_DYNCREATE makra v souboru záhlaví třídy.

    • Použití IMPLEMENT_DYNCREATE makra v souboru třídy implementace (CPP).To umožňuje objekty této třídy mají být vytvořeny v rámci.

  2. Deklarovat COleResizeBar člena ve třídě okna rámce.To je nutné, pokud chcete podporovat místní změny velikosti písma v serverových aplikací.

    Prohlásit, OnCreate popisovač zprávy (pomocí Vlastnosti okna) a volat vytvořit pro vaše COleResizeBar člen, v případě, že jste definovali.

  3. Pokud je panel nástrojů, deklarovat CToolBar člena ve třídě okna rámce.

    Přepsat OnCreateControlBars členské funkce, chcete-li vytvořit panel nástrojů, když server je aktivní na místě.Příklad:

    BOOL CInPlaceFrame::OnCreateControlBars(CFrameWnd* pWndFrame, CFrameWnd* pWndDoc)
    {
       UNREFERENCED_PARAMETER(pWndDoc);
    
       // Set owner to this window, so messages are delivered to correct app
       m_wndToolBar.SetOwner(this);
    
       // Create toolbar on client's frame window 
       if (!m_wndToolBar.CreateEx(pWndFrame, TBSTYLE_FLAT,WS_CHILD | WS_VISIBLE | CBRS_TOP
          | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
          !m_wndToolBar.LoadToolBar(IDR_SRVR_INPLACE))
       {
          TRACE0("Failed to create toolbar\n");
          return FALSE;
       }
    
       // TODO: Delete these three lines if you don't want the toolbar to be dockable
       m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
       pWndFrame->EnableDocking(CBRS_ALIGN_ANY);
       pWndFrame->DockControlBar(&m_wndToolBar);
    
       return TRUE;
    }
    

    Přečtěte si diskuzi o tento kód v kroku 5.

  4. Zahrňte do souboru main .cpp soubor hlaviček pro třídu okna rámce v místě.

  5. V InitInstance pro třídu aplikace, volání SetServerInfo funkce objektu šablony dokumentu určete zdroje a okna rámečku v místě má být použit v otevřené a místní úpravy.

Řada funkce volá v -li výkazu vytvoří panel nástrojů z prostředků serveru k dispozici.Panel nástrojů je nyní součástí okna hierarchie kontejneru.Vzhledem k tomu, že tento panel nástrojů je odvozen z CToolBar, předat své zprávy svému majiteli okno rámce v aplikaci kontejneru, pokud změna vlastníka.Proto volání SetOwner je nezbytné.Toto volání mění okna, které jsou odesílány příkazy být okna rámečku v místě na server, způsobující zprávy mají být předány serveru.To umožňuje serveru reagují na panelu nástrojů, který poskytuje operace.

ID obrázku panelu nástrojů by měl být stejný jako jiné místní prostředky definované v serverové aplikaci.Viz nabídky a zdroje: Přidání serveru podrobnosti.

Další informace naleznete v tématu COleIPFrameWnd, COleResizeBar, a CDocTemplate::SetServerInfo v Knihovny tříd.

Viz také

Koncepty

Servery

Servery: Implementace serveru

Servery: Implementace dokumentů serveru

Servery: Serverové položky