服务器:实现就地框架窗口

本文说明了必须实现执行在可视化编辑服务器应用的就地框架窗口,则可以不使用应用程序向导创建应用服务器。 代替使用本文所述的过程位置,可以使用从应用程序向导生成的应用程序或的现有框架窗口就地类 Visual C++ 附带。

声明一就地框架窗口类

  1. COleIPFrameWnd派生一就地框架窗口类。

    • 使用 DECLARE_DYNCREATE 宏。类的头文件。

    • 使用 IMPLEMENT_DYNCREATE 宏。类实现 (.cpp) 文件。 这使得此类对象由框架创建。

  2. 声明框架窗口类的 COleResizeBar 成员。 如果要支持在服务器应用的就地,调整这是需要的。

    OnCreate 消息声明处理程序 (使用 属性 窗口),并调用 COleResizeBar创建 成员,因此,如果定义其。

  3. 如果有一个工具栏,请声明框架窗口类的 CToolBar 成员。

    当服务器活动发生时,请重写 OnCreateControlBars 成员函数创建工具栏。 例如:

    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;
    }
    

    在步骤 5. 后此讨论,请参见代码的讨论。

  4. 就地此框架窗口类的将头文件包括在主 .cpp 文件。

  5. 在应用程序类的 InitInstance,请调用文档模板对象的 SetServerInfo 函数指定在打开和就地编辑和就地框架窗口的资源。

函数调用序列。if 语句创建提供从服务器资源的工具栏。 此时,窗口工具栏是容器的层次结构的一部分。 由于此工具栏是从 CToolBar派生的,它会将其消息给其所有者,容器应用程序的框架窗口,因此,除非更改所有者。 因此对 SetOwner 的调用是必需的。 此调用将命令发送是服务器的就地框架窗口的窗口消息,使传递到服务器。 这样服务器响应上了工具栏的操作。

工具栏的位图 ID 应与在服务器应用就地定义的其他资源。 参见 菜单和资源:服务器添加。有关详细信息。

有关更多信息,请参见、COleIPFrameWndCOleResizeBarCDocTemplate::SetServerInfo 和在 类库引用

请参见

概念

服务器

服务器:实现服务器

服务器:实现服务器文档

服务器:服务器项