Compartilhar via


Contêineres: notificações de item do cliente

Este artigo discute as funções substituíveis que a estrutura MFC chama quando aplicativos de servidor modificam itens no documento do aplicativo cliente.

COleClientItem define várias funções substituíveis que são chamadas em resposta a solicitações do aplicativo componente, que também é chamado de aplicativo para servidores. Essas substituições geralmente atuam como notificações. Elas informam o aplicativo de contêiner de vários eventos, como rolagem, ativação ou alteração de posição e de alterações que o usuário faz ao editar ou manipular o item de outra forma.

A estrutura notifica o aplicativo contêiner de alterações por meio de uma chamada para COleClientItem::OnChange, uma função substituível cuja implementação é necessária. Essa função protegida recebe dois argumentos. O primeiro especifica o motivo pelo qual o servidor alterou o item:

Notificação Significado
OLE_CHANGED A aparência do item OLE foi alterada.
OLE_SAVED O item OLE foi salvo.
OLE_CLOSED O item OLE foi fechado.
OLE_RENAMED O documento do servidor que contém o item OLE foi renomeado.
OLE_CHANGED_STATE O item OLE foi alterado de um estado para outro.
OLE_CHANGED_ASPECT O aspecto de desenho do item OLE foi alterado pela estrutura.

Esses valores são da enumeração OLE_NOTIFICATION, que é definida em AFXOLE.H.

O segundo argumento para essa função especifica como o item foi alterado ou qual estado ele inseriu:

Quando o primeiro argumento é Segundo argumento
OLE_SAVED ou OLE_CLOSED Não é usado.
OLE_CHANGED Especifica o aspecto do item OLE que foi alterado.
OLE_CHANGED_STATE Descreve o estado que está sendo inserido (emptyState, loadedState, openState, activeState ou activeUIState).

Para obter mais informações sobre os estados que um item cliente pode assumir, confira Contêineres: Estados Client-Item.

A estrutura chama COleClientItem::OnGetItemPosition quando um item está sendo ativado para edição in-loco. A implementação é necessária para aplicativos que dão suporte à edição in-loco. O Assistente de Aplicativo MFC fornece uma implementação básica, que atribui as coordenadas do item ao objeto CRect que é passado como um argumento para OnGetItemPosition.

Se a posição ou o tamanho de um item OLE for alterado durante a edição in-loco, as informações do contêiner sobre a posição do item e os retângulos de recorte deverão ser atualizadas e o servidor deverá receber informações sobre as alterações. A estrutura chama COleClientItem::OnChangeItemPosition para essa finalidade. O Assistente de Aplicativo MFC fornece uma substituição que chama a função da classe base. Você deve editar a função que o assistente de aplicativo grava para sua classe derivada de COleClientItempara que a função atualize todas as informações retidas pelo objeto client-item.

Confira também

Contêineres
Contêineres: estados de item do cliente
COleClientItem::OnChangeItemPosition