Partager via


Conteneurs : notifications d'élément client

Cet article présente les fonctions substituables que le framework MFC appelle lorsque les applications serveur modifient des éléments dans le document de votre application cliente.

COleClientItem définit plusieurs fonctions substituables appelées en réponse aux demandes de l’application de composant, également appelées application serveur. Ces fonctions substituables agissent généralement comme des notifications. Elles informent l'application conteneur de divers événements, par exemple, un défilement, une activation ou un changement de position, ainsi que des changements effectués par l'utilisateur en modifiant ou en manipulant autrement l'élément.

Le framework informe votre application conteneur des modifications via un appel à COleClientItem::OnChange, une fonction substituable dont l'implémentation est requise. Cette fonction protégée reçoit deux arguments. Le premier spécifie la raison pour laquelle le serveur a modifié l'élément :

Notification Signification
OLE_CHANGED L'apparence de l'élément OLE a changé.
OLE_SAVED L'élément OLE a été enregistré.
OLE_CLOSED L'élément OLE a été fermé.
OLE_RENAMED Le document du serveur contenant l'élément OLE a été renommé.
OLE_CHANGED_STATE L'élément OLE est passé d'un état à un autre.
OLE_CHANGED_ASPECT L'aspect de l'élément OLE a été modifié par le framework.

Ces valeurs proviennent de l’énumération OLE_NOTIFICATION , qui est définie dans AFXOLE.H.

Le deuxième argument de cette fonction spécifie la manière dont l'élément est modifié ou l'état dans lequel il est passé :

Lorsque le premier argument est Deuxième argument
OLE_SAVED ou OLE_CLOSED N'est pas utilisé.
OLE_CHANGED Spécifie l'aspect de l'élément OLE modifié.
OLE_CHANGED_STATE Décrit l’état entré (emptyState, loadedState, openState, activeState ou activeUIState).

Pour plus d’informations sur les états qu’un élément client peut supposer, consultez Conteneurs : États de l’élément client.

Le framework appelle COleClientItem::OnGetItemPosition lorsqu'un élément est activé pour la modification sur place. L'implémentation est requise pour les applications qui prennent en charge la modification sur place. L'Assistant Application MFC fournit une implémentation de base, qui assigne les coordonnées de l'élément à l'objet CRect passé comme argument à OnGetItemPosition.

Si la position ou la taille d'un élément OLE change lors de la modification sur place, les informations du conteneur relatives aux rectangles de découpage et à la position de l'élément doivent être mises à jour et le serveur doit recevoir les informations concernant ces modifications. Le framework appelle COleClientItem::OnChangeItemPosition à cet effet. L'Assistant Application MFC fournit une substitution qui appelle la fonction de la classe de base. Vous devez modifier la fonction que l'Assistant Application écrit pour votre classe dérivée de COleClientItem afin qu'elle puisse mettre à jour les informations conservées par votre objet d'élément client.

Voir aussi

Containers
Conteneurs : états d’élément client
COleClientItem ::OnChangeItemPosition