Compartir a través de


Contenedores: Notificaciones de elementos de cliente

En este artículo se describen las funciones reemplazables a las que llama el marco 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 el usuario realiza al editar o manipular el elemento de otro modo.

El marco notifica los cambios a la aplicación contenedora 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. El primero especifica el motivo por el que el servidor cambió el elemento:

Notification 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 marco ha cambiado el aspecto de dibujo del elemento OLE.

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 el estado en que 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 más información sobre los estados que puede asumir un elemento de cliente, vea Contenedores: estados de elementos de cliente.

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

Si la posición o el tamaño de un elemento OLE cambia durante la edición en contexto, la información del contenedor sobre la posición del elemento y los rectángulos de recorte debe actualizarse y el servidor debe recibir la información sobre los cambios. El marco llama a COleClientItem::OnChangeItemPosition para este fin. 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 la clase derivada de COleClientItem a fin de que la función actualice cualquier información conservada por el objeto de elemento de cliente.

Consulte también

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