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