Menus e recursos: Menu mesclagem
Este artigo detalha as etapas necessárias para aplicativos de documento OLE manipular a edição visual e ativação in-loco corretamente.Ativação in-loco representa um desafio para o contêiner e o servidor de aplicativos (componente).O usuário permanecerá na mesma janela do quadro (dentro do contexto do documento recipiente), mas é realmente executando outro aplicativo (o servidor).Isso requer coordenação entre os recursos dos aplicativos contêiner e servidor.
Os tópicos abordados neste artigo incluem:
Layouts de menu
Barras de ferramentas e barras de Status
Layouts de menu
A primeira etapa é coordenar os layouts de menu.Para obter mais informações, consulte o Menu criação seção Menu programação considerações na Windows SDK.
Aplicativos de contêiner devem criar um novo menu a ser usado somente quando os itens incorporados são ativados no lugar.No mínimo, este menu deve consistir o seguinte, na ordem listada:
Menu Arquivo idêntico ao usado quando arquivos são abertos.(Geralmente a outros itens de menu são colocados antes do próximo item.)
Dois separadores consecutivas.
Menu janela idêntica à usada quando os arquivos são abertos (somente se o aplicativo recipiente em um aplicativo MDI).Alguns aplicativos podem ter outros menus, como um menu de opções, que pertencem a esse grupo, que permanecerá no menu quando um item incorporado é ativado no lugar.
Observação Pode haver outros menus que afetam o modo de exibição do documento recipiente, como o Zoom.Esses menus do contêiner aparecem entre dois separadores desse recurso de menu.
Aplicativos de servidor (componente) também devem criar um novo menu especificamente para ativação in-loco.Ele deve ser como o menu usado quando os arquivos estiverem abertos, mas sem itens de menu, como arquivos e janela manipular o documento do servidor em vez dos dados.Normalmente, esse menu consiste no seguinte:
Edite menu idêntico ao usado quando arquivos são abertos.
Separador.
Objeto edição menus, como o menu de caneta no aplicativo de exemplo rabisco.
Separador.
Menu Ajuda.
Por exemplo, observe o layout de alguns menus no lugar de exemplo para um contêiner e um servidor.Os detalhes de cada item de menu foram removidos para tornar o exemplo mais claro.Menu de local do contêiner tem as seguintes entradas:
IDR_CONTAINERTYPE_CNTR_IP MENU PRELOAD DISCARDABLE
BEGIN
POPUP "&File C1"
MENUITEM SEPARATOR
POPUP "&Zoom C2"
MENUITEM SEPARATOR
POPUP "&Options C3"
POPUP "&Window C3"
END
Os separadores consecutivos indicam onde deve ir a primeira parte do menu do servidor.Agora examine o menu do local do servidor:
IDR_SERVERTYPE_SRVR_IP MENU PRELOAD DISCARDABLE
BEGIN
POPUP "&Edit S1"
MENUITEM SEPARATOR
POPUP "&Format S2"
MENUITEM SEPARATOR
POPUP "&Help S3"
END
Os separadores aqui indicam onde deve ficar o segundo grupo de itens de menu do contêiner.A estrutura de menu resultante quando um objeto de servidor é ativado no lugar dentro deste recipiente tem esta aparência:
BEGIN
POPUP "&File C1"
POPUP "&Edit S1"
POPUP "&Zoom C2"
POPUP "&Format S2"
POPUP "&Options C3
POPUP "&Window C3"
POPUP "&Help S3"
END
Como você pode ver, os separadores foram substituídos por grupos diferentes do menu de cada aplicativo.
Tabelas de acelerador associadas ao menu local também devem ser fornecidas pelo aplicativo servidor.O contêiner será incorporá-las em suas próprias tabelas de acelerador.
Quando um item incorporado é ativado no lugar, a estrutura carrega menu no lugar.Ele solicita o aplicativo de servidor no menu de ativação in-loco e insere onde estão os separadores.Isso é como combinam os menus.Obter menus do contêiner para o posicionamento de arquivos e janela de operação e obter menus do servidor para a operação no item.
Barras de ferramentas e barras de Status
Aplicativos de servidor devem criar uma nova barra de ferramentas e armazenar seu bitmap em um arquivo separado.Aplicativos wizard–generated aplicativo armazenam este bitmap em um arquivo chamado ITOOLBAR.BMP.Nova barra de ferramentas substitui a barra de ferramentas do aplicativo recipiente quando o item do servidor é ativado no lugar e deve conter os mesmos itens de sua barra de ferramentas normal, mas remover ícones que representam itens nos menus arquivo e janela.
Esta barra de ferramentas é carregada no seu COleIPFrameWnd-derivado classe, criado pelo Assistente de aplicativo.A barra de status é manipulada pelo aplicativo recipiente.Para obter mais informações sobre a implementação do windows de quadro no local, consulte servidores: Implementando um servidor.