Compartilhar via


Servidores: Implementando in-loco quadro Windows

Este artigo explica o que você deve fazer para implementar o windows de quadro no local em seu aplicativo de servidor edição visual se você não usar o Assistente de aplicativo para criar seu 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 de wizard–generated 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 lugar de COleIPFrameWnd.

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

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

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

    Declarar um OnCreate manipulador de mensagem (usando o Propriedades janela) e chamar criar para seu 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 in-loco.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 a seguir a etapa 5.

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

  5. Em InitInstance para sua classe de aplicativo, chame o SetServerInfo função do objeto de modelo de documento para especificar os 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 instrução cria a barra de ferramentas dos recursos do servidor fornecido.Neste ponto, a barra de ferramentas é parte da hierarquia de janela do contêiner.Porque essa barra de ferramentas é derivada de CToolBar, ele irá passar suas mensagens para seu proprietário, a janela do quadro do aplicativo de contêiner, a menos que você altere o proprietário.É por isso que a chamada para SetOwner é necessária.Essa chamada altera a janela onde os comandos são enviados para ser a janela do quadro no local do servidor, fazendo com que as mensagens sejam passadas para o servidor.Isso permite que o servidor reagir a operações na barra de ferramentas que ele oferece.

A identificação para o bitmap de barra de ferramentas deve ser o mesmo que outros recursos no local definidos no aplicativo de servidor.Consulte Menus e recursos: servidor adições para obter detalhes.

Para obter mais informações, consulte COleIPFrameWnd, COleResizeBar, e CDocTemplate::SetServerInfo na Referência de biblioteca de classe.

Consulte também

Conceitos

Servidores

Servidores: Implementando um servidor

Servidores: Implementando documentos do servidor

Servidores: Servidor itens