Funzione DrvMovePointer (winddi.h)

La funzione DrvMovePointer sposta il puntatore in una nuova posizione e assicura che GDI non interferisca con la visualizzazione del puntatore.

Sintassi

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

Parametri

[in] pso

Puntatore a una struttura SURFOBJ che descrive la superficie di un dispositivo di visualizzazione.

[in] x

Specificare la coordinata x sullo schermo in cui il driver deve posizionare il punto attivo del puntatore.

Un valore x negativo indica che il driver deve rimuovere il puntatore dalla visualizzazione perché il disegno sta per verificarsi dove si trova attualmente. Se il puntatore è stato rimosso dalla visualizzazione e il valore x non è negativo, il driver deve ripristinare il puntatore.

[in] y

Specificare la coordinata y nella visualizzazione in cui il driver deve posizionare il punto attivo del puntatore.

Quando il driver ha impostato il flag GCAPS_PANNING nella struttura DEVINFO , un valore y negativo indica che GDI chiama questa funzione solo per notificare al driver la posizione corrente del cursore. La posizione corrente può essere calcolata come (x, y+pso-sizlBitmap.cy>). Un driver che non imposta il flag GCAPS_PANNING non riceverà mai una coordinata y negativa.

[in] prcl

Puntatore a una struttura RECTL che definisce un'area che delimita tutti i pixel interessati dal puntatore nella visualizzazione. GDI non disegnare in questo rettangolo senza prima rimuovere il puntatore dallo schermo. Questo parametro può essere NULL.

Valore restituito

nessuno

Osservazioni

I driver a volte devono conoscere la posizione corrente del puntatore sullo schermo – anche quando GDI simula il puntatore (in modo che il driver non ottenga più le normali chiamate DrvMovePointer ) – per gestire la panoramica degli schermi virtuali. Per ricevere questa notifica, il driver deve impostare il flag GCAPS_PANNING nel campo flGraphicsCaps della struttura DEVINFO .

DrvMovePointer non verrà chiamato mentre qualsiasi thread sta disegnando nel driver di visualizzazione, a meno che il flag GCAPS_ASYNCMOVE non sia impostato nel membro flGraphicsCaps di DEVINFO.

DrvMovePointer deve essere implementato nei driver di visualizzazione solo quando viene implementato anche DrvSetPointerShape .

Se un driver ha registrato il puntatore specificato usando DrvSetPointerShape, DrvMovePointer non deve avere esito negativo.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione winddi.h (include Winddi.h)

Vedi anche

DEVINFO

DrvSetPointerShape

SURFOBJ