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) |