Compartir a través de


Método IPointerInactive::OnInactiveSetCursor (ocidl.h)

Establece el puntero del mouse para un objeto inactivo. El contenedor llama a este método al recibir un método WM_SETCURSOR cuando un objeto inactivo está bajo el puntero del mouse.

Sintaxis

HRESULT OnInactiveSetCursor(
  [in] LPCRECT pRectBounds,
  [in] LONG    x,
  [in] LONG    y,
  [in] DWORD   dwMouseMsg,
  [in] BOOL    fSetAlways
);

Parámetros

[in] pRectBounds

Rectángulo delimitador de objetos especificado en unidades de coordenadas de cliente de la ventana contenedora. Este parámetro indica al objeto su posición y tamaño exactos en la pantalla cuando se recibió el mensaje WM_SETCURSOR. Este valor se especifica en unidades del sistema de coordenadas del cliente.

[in] x

Coordenada horizontal de la ubicación del mouse en unidades de la ventana contenedora del cliente.

[in] y

Coordenada vertical de la ubicación del mouse en unidades de la ventana contenedora del cliente.

[in] dwMouseMsg

Identificador del mensaje del mouse para el que se produjo un WM_SETCURSOR.

[in] fSetAlways

Si este valor es TRUE, el objeto debe establecer el cursor; si este valor es FALSE, el objeto no está obligado a establecer el cursor y debe devolver S_FALSE en ese caso.

Valor devuelto

Este método puede devolver el valor devuelto estándar E_FAIL, así como los siguientes valores.

Código devuelto Descripción
S_OK
El puntero del mouse se estableció correctamente.
S_FALSE
El objeto no estableció el cursor; El contenedor debe establecer el cursor o volver a llamar al objeto con el parámetro fSetAlways establecido en TRUE.

Comentarios

El contenedor llama a este método para establecer el puntero del mouse sobre un objeto inactivo después de comprobar la directiva de activación del objeto llamando al método IPointerInactive::GetActivationPolicy . Si el objeto no ha solicitado activarse en contexto a través de esa llamada, el contenedor envía los mensajes de WM_SETCURSOR posteriores al objeto inactivo llamando a OnInactiveSetCursor siempre que el puntero del mouse permanezca sobre el objeto.

Para evitar errores de redondeo y facilitar el trabajo en el implementador de objetos, este método toma coordenadas de ventana en las unidades de su ventana cliente contenedora, es decir, la ventana en la que se muestra el objeto, en lugar de las unidades HIMETRIC habituales. Por lo tanto, se pueden usar las mismas coordenadas y ruta de acceso del código cuando el objeto está activo e inactivo. Las coordenadas de la ventana especifican la posición del mouse. El rectángulo delimitador también se especifica en el mismo sistema de coordenadas.

OnInactiveSetCursor toma un parámetro adicional, fSetAlways, que indica si el objeto está obligado a establecer el cursor o no. Los contenedores deben llamar primero a este método con este parámetro FALSE. El objeto puede devolver S_FALSE para indicar que no estableció el cursor. En ese caso, el contenedor debe establecer el propio cursor o, si no desea hacerlo, llame de nuevo al método OnInactiveSetCursor con fSetAlways siendo TRUE.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado ocidl.h

Consulte también

IPointerInactive