Servidores: Implementação local quadro Windows

Este artigo explica o que você deve fazer para implementar as janelas de quadro no local em seu aplicativo de servidor de edição visual se você não usar o Assistente de aplicativo para criar o aplicativo de servidor.Em vez de seguir o procedimento descrito neste artigo, você pode usar uma classe de janela de quadro no local existente de um aplicativo assistente–generated aplicativo ou uma amostra fornecidos com o Visual C++.

Para declarar uma classe de janela de quadro no local

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

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

    • Use o IMPLEMENT_DYNCREATE macro no arquivo de classe de implementação (CPP). Isso permite que objetos desta classe a ser criado pela estrutura.

  2. Declarar um COleResizeBar membro da classe de janela do quadro. Isso é necessário se você quiser suportar in-loco redimensionamento em aplicativos do servidor.

    Declarar um OnCreate manipulador de mensagens (usando o Propriedades window), and telefonar Criar for your COleResizeBar membro, se você definiu.

  3. Se você tiver uma barra de ferramentas, declare um CToolBar membro da classe de janela do quadro.

    Substituir o OnCreateControlBars função de membro para criar uma barra de ferramentas quando o servidor está ativo no lugar. 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 a discussão deste código seguindo a etapa 5.

  4. Inclua o arquivo de cabeçalho para esta classe de janela de quadro no local em seu arquivo .cpp principal.

  5. In InitInstance para sua classe de aplicativo telefonar o SetServerInfo função de objeto de modelo de documento para especificar a recursos e a janela do quadro no local a ser usado na edição aberta e no local.

A série de função chama o Se demonstrativo cria a barra de ferramentas de recursos do servidor fornecido.Neste ponto, a barra de ferramentas é parte janela hierarquia do contêiner.Porque esta barra de ferramentas é derivada de CToolBar, ele irá passar suas mensagens para seu proprietário, a janela do quadro do aplicativo contêiner, a menos que você altere o proprietário. É por isso que a telefonar para SetOwner é necessário. Essa telefonar altera a janela onde os comandos são enviados para ser a janela de quadro no local do servidor, fazendo com que as mensagens para ser passada para o servidor.Isso permite que o servidor reagir às operações na barra de ferramentas que ele fornece.

A ID de bitmap da barra de ferramentas deve ser o mesmo sistema autônomo a Outros recursos no local definida no seu aplicativo de servidor.See Menus e recursos: Servidor adições para obter detalhes.

Para obter mais informações, consulte COleIPFrameWnd, COleResizeBar, and CDocTemplate::SetServerInfo in the Referência da biblioteca de classes.

Consulte também

Conceitos

Servidores

Servidores: Implementando um servidor

Servidores: Implementando documentos servidor

Servidores: Itens do servidor