Partager via


Fonction DrvMovePointer (winddi.h)

La fonction DrvMovePointer déplace le pointeur vers une nouvelle position et garantit que GDI n’interfère pas avec l’affichage du pointeur.

Syntaxe

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

Paramètres

[in] pso

Pointeur vers une structure SURFOBJ qui décrit la surface d’un périphérique d’affichage.

[in] x

Spécifiez la coordonnée x sur l’affichage où le pilote doit positionner la zone d’accès rapide du pointeur.

Une valeur x négative indique que le pilote doit supprimer le pointeur de l’affichage, car le dessin est sur le point de se produire là où il se trouve actuellement. Si le pointeur a été supprimé de l’affichage et que la valeur x n’est pas négative, le pilote doit restaurer le pointeur.

[in] y

Spécifiez la coordonnée y sur l’affichage où le pilote doit positionner le point chaud du pointeur.

Lorsque le pilote a défini l’indicateur GCAPS_PANNING dans la structure DEVINFO , une valeur y négative indique que GDI appelle cette fonction uniquement pour informer le pilote de la position actuelle du curseur. La position actuelle peut être calculée en tant que (x, y+pso-sizlBitmap.cy>). Un pilote qui ne définit pas l’indicateur GCAPS_PANNING ne recevra jamais une coordonnée y négative.

[in] prcl

Pointeur vers une structure RECTL définissant une zone qui lie tous les pixels affectés par le pointeur sur l’affichage. GDI ne dessine pas dans ce rectangle sans d’abord supprimer le pointeur de l’écran. Ce paramètre peut être NULL.

Valeur de retour

None

Remarques

Les pilotes ont parfois besoin de connaître la position actuelle du pointeur à l’écran , même lorsque GDI simule le pointeur (de sorte que le pilote n’obtient plus d’appels DrvMovePointer normaux) - pour gérer les affichages virtuels panoramiques. Pour recevoir cette notification, le pilote doit définir l’indicateur GCAPS_PANNING dans le champ flGraphicsCaps de la structure DEVINFO .

DrvMovePointer n’est pas appelé pendant qu’un thread dessine dans le pilote d’affichage, sauf si l’indicateur GCAPS_ASYNCMOVE est défini dans le membre flGraphicsCaps de DEVINFO.

DrvMovePointer doit être implémenté dans les pilotes d’affichage uniquement lorsque DrvSetPointerShape est également implémenté.

Si un pilote a inscrit le pointeur spécifié à l’aide de DrvSetPointerShape, DrvMovePointer ne doit pas échouer.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête winddi.h (inclure Winddi.h)

Voir aussi

DEVINFO

DrvSetPointerShape

SURFOBJ