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-
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.
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.
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.
Inclua o arquivo de cabeçalho para essa classe no local da quadro- janela no arquivo .cpp principal.
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: implementando um servidor