COleControl::GetActivationPolicy

virtual DWORD GetActivationPolicy ( );

Valor devuelto

Una combinación de indicadores de la enumeración POINTERINACTIVE . Posibles indicadores son:

POINTERINACTIVE_ACTIVATEONENTRY

El objeto debe ser activado cuando el ratón entra durante una operación de desplazamiento del ratón en el lugar.

POINTERINACTIVE_DEACTIVATEONLEAVE

El objeto debe desactivarse cuando el ratón sale del objeto durante una operación de desplazamiento del ratón.

POINTERINACTIVE_ACTIVATEONDRAG

El objeto debe ser activado cuando se arrastra el ratón sobre él durante un arrastre en el lugar y colocar la operación.

Observaciones

Reemplazar esta función para modificar el comportamiento predeterminado de la activación de un control que admite la interfaz IPointerInactive.

Cuando está habilitada la interfaz IPointerInactive , el contenedor delegará WM_SETCURSOR y WM_MOUSEMOVE mensajes. COleControlde implementación de esta interfaz enviará estos mensajes a través del mapa de mensajes de control, después de ajustar el ratón coordina adecuadamente.

Cuando el contenedor recibe un mensaje WM_SETCURSOR o WM_MOUSEMOVE con el puntero del ratón sobre un objeto inactivo apoyar IPointerInactive, debe llamar a GetActivationPolicy en la interfaz y devolver las banderas de la enumeración de POINTERINACTIVE.

Puede procesar estos mensajes al igual que mensajes de ventana normal, agregando las entradas correspondientes en el mapa de mensajes. En los controladores, evite utilizar la variable miembro de antes (o las funciones de miembro USA) sin antes de comprobar que su valor es no-NULL.

Cualquier objeto destinado a más de establecer el cursor del ratón o desencadenar un evento de movimiento del ratón, tales como proporcionar retroalimentación visual especial, debe retornar la bandera POINTERINACTIVE_ACTIVATEONENTRY y dibujar los comentarios sólo cuando está activo. Si el objeto devuelve esta bandera, el contenedor debe activarlo en el lugar inmediatamente y luego remitirá el mismo mensaje que desencadenó la llamada a GetActivationPolicy.

Si se devuelven banderas el POINTERINACTIVE_ACTIVATEONENTRY y el POINTERINACTIVE_DEACTIVATEONLEAVE , el objeto sólo se activa cuando el ratón está sobre el objeto. Si sólo se devuelve la bandera POINTERINACTIVE_ACTIVATEONENTRY , a continuación, el objeto sólo se activará una vez cuando el ratón entra por primera vez el objeto.

También es aconsejable un control inactivo para ser el destino de un arrastre OLE y soltar la operación. Esto requiere activación del control en el momento que el usuario arrastra un objeto sobre él, para que la ventana del control puede ser registrada como un destino de colocación. Para provocar la activación se produzca durante el arrastre, devolver la bandera POINTERINACTIVE_ACTIVATEONDRAG:

DWORD CMyCtrl::GetActivationPolicy()
{
 nbsp;  Return POI&NTERINACTIVE_ACTIVATEONDRAG;
}

No se deben almacenar en caché las informaciones comunicadas por GetActivationPolicy por un contenedor. En su lugar, debería llamarse este método cada vez que el ratón entra en un objeto inactivo.

Si un objeto inactivo no solicitar que se activa cuando el ratón entra en el lugar, su contenedor debe enviar mensajes WM_SETCURSOR posteriores a este objeto llamando a OnInactiveSetCursor como el puntero del ratón permanece sobre el objeto.

Habilitar la interfaz IPointerInactive normalmente significa que desea que el control sea capaz de procesar mensajes de ratón en todo momento. Para obtener este comportamiento en un contenedor que no es compatible con la interfaz IPointerInactive , necesitará tener el control siempre activado cuando visibles, lo que significa el control debe tener la bandera OLEMISC_ACTIVATEWHENVISIBLE entre sus diversos indicadores. Sin embargo, para evitar que esta bandera teniendo efecto en un contenedor que soporte IPointerInactive, también puede especificar el indicador OLEMISC_IGNOREACTIVATEWHENVISIBLE:

 static const DWORD BASED_CODE _dwMyOleMisc =
 nbsp;  OLEMISC_ACTIVATEWHE&NVISIBLE |
    OLEMISC_IGNOREACTIVATEWHENVISIBLE |
    OLEMISC_SETCLIENTSITEFIRST |
    OLEMISC_INSIDEOUT |
    OLEMISC_CANTLINKINSIDE |
    OLEMISC_RECOMPOSEONRESIZE;

Introducción a COleControl |nbsp; Miembros de clase | Diagrama de jerarquía

Vea tambié&nnbsp;COleControl::OnInactiveSetCursor, COleControl::OnInactiveMouseMove

Index