Compartir a través de


Función DrvMovePointer (winddi.h)

La función DrvMovePointer mueve el puntero a una nueva posición y garantiza que GDI no interfiera con la visualización del puntero.

Sintaxis

void DrvMovePointer(
  [in] SURFOBJ *pso,
  [in] LONG    x,
  [in] LONG    y,
  [in] RECTL   *prcl
);

Parámetros

[in] pso

Puntero a una estructura SURFOBJ que describe la superficie de un dispositivo de pantalla.

[in] x

Especifique la coordenada x en la pantalla donde el controlador debe colocar la zona activa del puntero.

Un valor x negativo indica que el controlador debe quitar el puntero de la pantalla porque el dibujo está a punto de producirse donde se encuentra actualmente. Si el puntero se ha quitado de la pantalla y el valor x no es negativo, el controlador debe restaurar el puntero.

[in] y

Especifique la coordenada y en la pantalla donde el controlador debe colocar la zona activa del puntero.

Cuando el controlador ha establecido la marca GCAPS_PANNING en la estructura DEVINFO , un valor y negativo indica que GDI llama a esta función solo para notificar al controlador la posición actual del cursor. La posición actual se puede calcular como (x, y+sizlBitmap.cy>). Un controlador que no establece la marca GCAPS_PANNING nunca recibirá una coordenada y negativa.

[in] prcl

Puntero a una estructura RECTL que define un área que enlaza todos los píxeles afectados por el puntero en la pantalla. GDI no dibujará en este rectángulo sin quitar primero el puntero de la pantalla. Este parámetro puede ser NULL.

Valor devuelto

None

Observaciones

A veces, los controladores necesitan conocer la posición actual del puntero en la pantalla , incluso cuando GDI simula el puntero (de modo que el controlador ya no obtiene llamadas normales a DrvMovePointer ) - para controlar las pantallas virtuales de movimiento panorámico. Para recibir esta notificación, el controlador debe establecer la marca GCAPS_PANNING en el campo flGraphicsCaps de la estructura DEVINFO .

No se llamará a DrvMovePointer mientras se dibuja ningún subproceso en el controlador de pantalla a menos que la marca de GCAPS_ASYNCMOVE esté establecida en el miembro flGraphicsCaps de DEVINFO.

DrvMovePointer solo debe implementarse en controladores de pantalla cuando DrvSetPointerShape también se implementa.

Si un controlador ha registrado el puntero especificado mediante DrvSetPointerShape, DrvMovePointer no debe producir un error.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado winddi.h (incluya Winddi.h)

Consulte también

DEVINFO

DrvSetPointerShape

SURFOBJ