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 COleClientItem
para 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