Partilhar via


Contêineres: Implementando um contêiner

Este artigo resume o procedimento para implementar um contêiner e aponta para outros artigos que fornecem explicações mais detalhadas sobre a implementação de contêineres. Ele também lista alguns recursos OLE opcionais que você pode querer implementar e os artigos que descrevem esses recursos.

Para preparar a tua classe derivada de CWinApp

  1. Inicialize as bibliotecas OLE chamando AfxOleInit a InitInstance função de membro.

  2. Chame CDocTemplate::SetContainerInfo em InitInstance para atribuir os recursos de menu e acelerador usados quando um item incorporado é ativado no local. Para obter mais informações sobre este tópico, consulte Ativação.

Esses recursos são fornecidos automaticamente quando você usa o MFC Application Wizard para criar um aplicativo de contêiner. Consulte Criando um programa MFC EXE.

Para preparar a sua classe de visualização

  1. Acompanhe os itens selecionados mantendo um ponteiro ou uma lista de ponteiros se você oferecer suporte a várias seleções para os itens selecionados. Sua OnDraw função deve desenhar todos os itens OLE.

  2. Substituir IsSelected para verificar se o item passado para ele está selecionado no momento.

  3. Implemente um OnInsertObject manipulador de mensagens para exibir a caixa de diálogo Inserir objeto .

  4. Implemente um OnSetFocus manipulador de mensagens para transferir o foco da visualização para um item OLE incorporado ativo no local.

  5. Implemente um OnSize manipulador de mensagens para informar um item incorporado OLE de que ele precisa alterar seu retângulo para refletir a alteração no tamanho da vista que o contém.

Como a implementação desses recursos varia drasticamente de um aplicativo para o outro, o assistente de aplicativo fornece apenas uma implementação básica. Você provavelmente terá que personalizar essas funções para que seu aplicativo funcione corretamente. Para um exemplo disso, consulte a amostra CONTAINER .

Para lidar com itens incorporados e ligados

  1. Derive uma classe de COleClientItem. Os objetos dessa classe representam itens que foram incorporados ou vinculados ao seu documento OLE.

  2. Substituir OnChange, OnChangeItemPosition e OnGetItemPosition. Essas funções lidam com dimensionamento, posicionamento e modificação de itens incorporados e vinculados.

O assistente da aplicação derivará a classe para você, mas você provavelmente terá de substituir OnChange e as outras funções listadas em conjunto com ele na etapa 2 no procedimento anterior. As implementações esqueleto precisam ser personalizadas para a maioria dos aplicativos, porque essas funções são implementadas de forma diferente de um aplicativo para o próximo. Para exemplos disso, consulte as amostras MFC DRAWCLI e CONTAINER.

Você deve adicionar vários itens à estrutura de menu do aplicativo contêiner para oferecer suporte a OLE. Para obter mais informações sobre isso, consulte Menus e recursos: adições de contêiner.

Você também pode querer oferecer suporte a alguns dos seguintes recursos em seu aplicativo de contêiner:

  • Ativação no local ao editar um item incorporado.

    Para obter mais informações, consulte Ativação.

  • Criação de itens OLE arrastando e soltando uma seleção de um aplicativo de servidor.

    Para obter mais informações, consulte OLE arrastar e soltar.

  • Links para objetos incorporados ou aplicativos de contêiner/servidor de combinação.

    Para obter mais informações, consulte Contêineres: recursos avançados.

Ver também

Contentores
Contêineres: Itens do cliente