Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este grupo de artigos explica o uso de menus e recursos em aplicativos de documento OLE do MFC.
A edição visual OLE coloca requisitos adicionais no menu e outros recursos fornecidos por aplicativos de documento OLE porque há vários modos nos quais aplicativos de contêiner e servidor (componente) podem ser iniciados e usados. Por exemplo, um aplicativo de servidor completo pode ser executado em qualquer um desses três modos:
Fique sozinho.
In-loco, para editar um item dentro do contexto de um contêiner.
Abra, para editar um item fora do contexto de seu contêiner, geralmente em uma janela separada.
Isso requer três layouts de menu separados, um para cada modo possível do aplicativo. Tabelas de acelerador também são necessárias para cada novo modo. Um aplicativo de contêiner pode ou não dar suporte à ativação no local; caso o faça, precisará de uma nova estrutura de menu e tabelas de aceleradores associadas.
A ativação no local requer que os aplicativos de contêiner e servidor negociem pelo menu, pela barra de ferramentas e espaço na barra de status. Todos os recursos devem ser projetados com isso em mente. O artigo Menus e Recursos: Mesclagem de Menus aborda este tópico em detalhes.
Devido a esses problemas, os aplicativos de documento OLE criados com o assistente de aplicativo podem ter até quatro menus e recursos de tabela de acelerador separados. Eles são usados pelos seguintes motivos:
| Nome do recurso | Utilização |
|---|---|
| IDR_MAINFRAME | Usado em um aplicativo MDI se nenhum arquivo estiver aberto ou em um aplicativo SDI, independentemente de arquivos abertos. Esse é o menu padrão usado em aplicativos não OLE. |
| <IDR_projeto>TYPE | Usado em um aplicativo MDI quando os arquivos estão abertos. Usado quando um aplicativo está sendo executado de forma independente. Esse é o menu padrão usado em aplicativos não OLE. |
| <IDR_projeto>TYPE_SRVR_IP | Usado pelo servidor ou contêiner quando um objeto está aberto no local. |
| <IDR_projeto>TYPE_SRVR_EMB | Usado por um aplicativo de servidor se um objeto for aberto sem usar a ativação in-loco. |
Cada um desses nomes de recursos representa um menu e, geralmente, uma tabela aceleradora. Um esquema semelhante deve ser usado em aplicativos MFC que não são criados com o assistente de aplicativo.
Os artigos a seguir discutem tópicos relacionados a contêineres, servidores e a integração de menu necessária para implementar a ativação direta: