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