Partilhar via


Servidores: implementando janelas de quadro in-loco

Este artigo explica o que você precisa fazer para implementar o windows no local do quadro em seu aplicativo para servidores visual da edição se você não usar o assistente de aplicativo para criar seu aplicativo de servidor. Em vez disso seguir o procedimento descrito neste artigo, você pode usar uma classe existente no local de quadro- janela de um aplicativo script MDX do aplicativo ou de um exemplo fornecido com o Visual C++.

Para declarar uma classe no local da janela quadro-

  1. Derivar uma classe no local da quadro- janela de COleIPFrameWnd.

    • Use a macro de DECLARE_DYNCREATE em seu arquivo de cabeçalho da classe.

    • Use a macro de IMPLEMENT_DYNCREATE no arquivo de implementação da classe (.cpp). Isso permite que os objetos dessa classe são criados pela estrutura.

  2. Declare um membro de COleResizeBar na classe de quadro- janela. Isso é necessário se desejar oferecer suporte para redimensionar in-loco em aplicativos para servidores.

    Declare um manipulador de mensagens de OnCreate (que usa a janela de Propriedades ), e chame Criar para seu membro de COleResizeBar , se você definiu o.

  3. Se você tiver uma barra de ferramentas, declarar um membro de CToolBar na classe de quadro- janela.

    Substitua a função de membro de OnCreateControlBars para criar uma barra de ferramentas quando o servidor está em vigor ativa. Por exemplo:

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

    Consulte físico desse código depois da etapa 5.

  4. Inclua o arquivo de cabeçalho para essa classe no local da quadro- janela no arquivo .cpp principal.

  5. Em InitInstance para a sua classe do aplicativo, chame a função de SetServerInfo de objeto de modelo de documento para especificar os recursos e a janela no local do quadro a serem usados na abertura e em editar no local.

A série das chamadas de função na instrução de if cria a barra de ferramentas dos recursos que o servidor fornecido. Neste momento, a barra de ferramentas é parte da hierarquia da janela do contêiner. Como essa barra de ferramentas é derivada de CToolBar, passará suas mensagens a seu proprietário, a janela do quadro de aplicativo de contêiner, a menos que você altere o proprietário. É por isso a chamada a SetOwner é necessário. Essa chamada alterar a janela onde os comandos são enviados ser a janela no local do quadro do servidor, fazendo com que as mensagens a serem passadas para o servidor. Isso permite que o servidor esteja a operações na barra de ferramentas que o fornece.

A ID de O bitmap da barra de ferramentas deve ser o mesmo que os outros recursos in-loco definidos em seu aplicativo para servidores. Consulte Menus e recursos: Adições de servidor para obter detalhes.

Para obter mais informações, consulte COleIPFrameWnd, COleResizeBar, e CDocTemplate::SetServerInfona referência da biblioteca da classe.

Consulte também

Conceitos

Servidores

Servidores: implementando um servidor

Servidores: implementando documentos de servidor

Servidores: itens de servidor