Contenedores: Notificaciones de elementos de cliente

Nota:

La biblioteca Microsoft Foundation Classes (MFC) sigue siendo compatible. Sin embargo, ya no estamos agregando características ni actualizando la documentación.

En este artículo se describen las funciones reemplazables a las que llama el marco de MFC cuando las aplicaciones de servidor modifican elementos en el documento de la aplicación cliente.

COleClientItem define varias funciones reemplazables a las que se llama en respuesta a las solicitudes de la aplicación de componente, que también se denomina aplicación de servidor. Estos reemplazables suelen actuar como notificaciones. Informan a la aplicación contenedora de varios eventos, como el desplazamiento, la activación o un cambio de posición, y de los cambios que realiza el usuario al editar o manipular el elemento de otro modo.

El marco notifica a la aplicación contenedora los cambios a través de una llamada a COleClientItem::OnChange, una función reemplazable cuya implementación es necesaria. Esta función protegida recibe dos argumentos. La primera especifica el motivo por el que el servidor cambió el elemento:

Notificación Significado
OLE_CHANGED La apariencia del elemento OLE ha cambiado.
OLE_SAVED Se ha guardado el elemento OLE.
OLE_CLOSED Se ha cerrado el elemento OLE.
OLE_RENAMED Se ha cambiado el nombre del documento de servidor que contiene el elemento OLE.
OLE_CHANGED_STATE El elemento OLE ha cambiado de un estado a otro.
OLE_CHANGED_ASPECT El aspecto de dibujo del elemento OLE ha sido cambiado por el marco.

Estos valores proceden de la enumeración OLE_NOTIFICATION , que se define en AFXOLE.H.

El segundo argumento de esta función especifica cómo ha cambiado el elemento o en qué estado ha entrado.

Cuando el primer argumento es Segundo argumento
OLE_SAVED o OLE_CLOSED No se usa.
OLE_CHANGED Especifica el aspecto del elemento OLE que ha cambiado.
OLE_CHANGED_STATE Describe el estado en el que está entrando (emptyState, loadedState, openState, activeState o activeUIState).

Para obtener más información sobre los estados que puede suponer un elemento de cliente, vea Contenedores: Client-Item Estados.

El marco llama a COleClientItem::OnGetItemPosition cuando se activa un elemento para la edición local. La implementación es necesaria para las aplicaciones que admiten la edición local. El Asistente para aplicaciones MFC proporciona una implementación básica, que asigna las coordenadas del elemento al CRect objeto que se pasa como argumento a OnGetItemPosition.

Si cambia la posición o el tamaño de un elemento OLE durante la edición local, la información del contenedor sobre la posición del elemento y los rectángulos de recorte deben actualizarse y el servidor debe recibir información sobre los cambios. El marco utiliza COleClientItem::OnChangeItemPosition para este propósito. El Asistente para aplicaciones MFC proporciona una invalidación que llama a la función de la clase base. Debe editar la función que el asistente para aplicaciones escribe para su clase derivada COleClientItem de manera que la función actualice cualquier información conservada por el objeto cliente.

Consulte también

Recipientes
Contenedores: Estados de elementos de cliente
COleClientItem::OnChangeItemPosition