Compartilhar 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 opcionais OLE que talvez você queira implementar e os artigos que descrevem esses recursos.

Para preparar a classe derivada do CWinApp

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

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

Esses recursos são fornecidos para você automaticamente quando você usa o Assistente de Aplicativo MFC para criar um aplicativo de contêiner. Consulte Como criar um programa EXE do MFC.

Para preparar a classe de exibição

  1. Acompanhe os itens selecionados mantendo um ponteiro ou, caso ofereça suporte a múltiplas seleções, uma lista de ponteiros para os itens selecionados. Sua OnDraw função deve desenhar todos os itens OLE.

  2. Substitua IsSelected para verificar se o item passado para ele está selecionado.

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

  4. Implemente um manipulador de mensagens OnSetFocus para transferir o foco do modo de exibição para um item inserido de OLE ativo no local.

  5. Implemente um manipulador de mensagens OnSize para informar um item inserido de OLE de que ele precisa para alterar seu retângulo para refletir a alteração de tamanho do modo de exibição 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 obter um exemplo disso, consulte o exemplo container .

Para manipular itens inseridos e vinculados

  1. Derivar uma classe de COleClientItem. Os objetos dessa classe representam itens que foram inseridos ou vinculados ao documento OLE.

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

O assistente do aplicativo derivará a classe para você, mas provavelmente você precisará substituir OnChange e as outras funções listadas com ela na etapa 2 no procedimento anterior. As implementações de esqueleto precisam ser personalizadas para a maioria dos aplicativos, pois essas funções são implementadas de forma diferente de um aplicativo para o outro. Para obter exemplos disso, consulte os exemplos de MFC DRAWCLI e CONTAINER.

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

Talvez você também queira dar suporte a alguns dos seguintes recursos em seu aplicativo de contêiner:

Consulte também

Contêineres
Contêineres: Itens do Cliente