Sdílet prostřednictvím


Serverů: V místě rámečku Windows implementaci

Tento článek vysvětluje, co je nutné provádět přímo v rámci systému windows vizuální úpravy aplikace serveru není použití Průvodce aplikace vytvořte serverovou aplikaci.Namísto postupu popsané v tomto článku můžete použít existující třídy v místě rámečku okno aplikace wizard–generated aplikace nebo vzorek s Visual C++.

Deklarovat třídu v místě rámečku okna

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

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

    • Použití IMPLEMENT_DYNCREATE makra v souboru třídy implementace (cpp).To umožňuje objekty vytvořené v rámci této třídy.

  2. Deklarovat COleResizeBar člen třídy rámeček okna.To je potřeba, pokud chcete podporovat místní změny velikosti v serverových aplikací.

    Deklarovat OnCreate popisovači zprávy (pomocí Vlastnosti okna) a volání vytvořit pro vaše COleResizeBar člena, pokud jste definovali.

  3. Prohlásit, máte-li panel nástrojů, CToolBar člen třídy rámeček okna.

    Přepsat OnCreateControlBars server je aktivní panel nástrojů vytvoříte členské funkce.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;
    }
    

    Viz popis tohoto kódu následující krok 5.

  4. Zahrňte do souboru cpp hlavní soubor záhlaví pro tuto třídu v místě rámečku oken.

  5. V InitInstance vaší třídy aplikace volat SetServerInfo funkce objektu šablony dokumentu určete prostředky a v místě rámečku okno pro úpravy na místě a otevřít.

Řada funkce volání Pokud příkaz vytvoří panel nástrojů z prostředků serveru k dispozici.V tomto okamžiku panelu nástrojů je součástí hierarchie okno kontejneru.Protože tento panel nástrojů je odvozen od CToolBar, jej předá své zprávy vlastníka, rámeček okna aplikace kontejneru, pokud změna vlastníka.Proto volání SetOwner je nezbytné.Toto volání změní okno, kde jsou odesílány příkazy se okno na serveru v místě rámečku, způsobující zprávy předávané serveru.To umožňuje serveru reagovat na operace na panelu nástrojů, který poskytuje.

ID pro bitmapových nástrojů by měl být stejný jako jiné zdroje v místě definované v serverové aplikaci.Viz nabídky a prostředky: dodatky Server podrobnosti.

Další informace naleznete v COleIPFrameWnd, COleResizeBar, a CDocTemplate::SetServerInfo v Reference knihovny třídy.

Viz také

Koncepty

Servery

Servery: Provádění serveru

Serverů: Dokumenty na serveru implementaci

Servery: Položky Server