Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo explica o que deve fazer para implementar janelas de moldura no local na sua aplicação servidor de edição visual caso não utilize o assistente da aplicação para a criar. Em vez de seguir o procedimento delineado neste artigo, pode usar uma classe de janela em quadro "in-place" existente, seja de uma aplicação gerada por um assistente de criação de aplicações ou de um exemplo fornecido com o Visual C++.
Para declarar uma classe de janela de moldura adaptável
Derive uma classe de janela de frame diretamente de
COleIPFrameWnd.Use a macro DECLARE_DYNCREATE no arquivo de cabeçalho da classe.
Use a macro IMPLEMENT_DYNCREATE em seu arquivo de implementação de classe (.cpp). Isso permite que objetos dessa classe sejam criados pela estrutura.
Declare um
COleResizeBarmembro na classe frame-window. Isso é necessário se pretender oferecer suporte ao redimensionamento no local em aplicações de servidor.Declare um
OnCreatemanipulador de mensagens (usando o Assistente de classe) e chameCreateseuCOleResizeBarmembro, se você o tiver definido.Se você tiver uma barra de ferramentas, declare um
CToolBarmembro na classe frame-window.Substitua a
OnCreateControlBarsfunção de membro para criar uma barra de ferramentas quando o servidor estiver ativo no local. 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.
Inclua o ficheiro de cabeçalho para esta classe de janela de quadro no local no seu ficheiro .cpp principal.
Em
InitInstancepara sua classe de aplicação, chame a funçãoSetServerInfodo objeto de modelo de documentos para especificar os recursos e a janela de moldura no local a ser usada na edição aberta e no local.
A série de chamadas de função na if instrução cria a barra de ferramentas a partir dos recursos fornecidos pelo servidor. Neste ponto, a barra de ferramentas faz parte da hierarquia de janelas do contêiner. Como esta barra de ferramentas é derivada de CToolBar, ela passará suas mensagens para o seu proprietário, a janela de quadro do aplicativo contêiner, a menos que você altere o proprietário. É por isso que o chamamento para SetOwner é necessário. Essa chamada altera a janela para a qual os comandos são enviados, passando a ser a janela de estrutura imediatamente disponível do servidor, o que faz com que as mensagens sejam enviadas para o servidor. Isso permite que o servidor reaja às operações na barra de ferramentas que ele fornece.
O ID para o bitmap da barra de ferramentas deve ser o mesmo que os outros recursos locais definidos na sua aplicação de servidor. Consulte Menus e recursos: adições de servidor para obter detalhes.
Para obter mais informações, consulte COleIPFrameWnd, COleResizeBar e CDocTemplate::SetServerInfo na Referência da Biblioteca de Classes.
Ver também
Servidores
Servidores: Implementando um servidor
Servidores: Implementando documentos do servidor
Servidores: Itens de servidor