Condividi tramite


Metodo IDirect3DDevice9::SetCursorProperties (d3d9.h)

Imposta le proprietà per il cursore.

Sintassi

HRESULT SetCursorProperties(
  [in] UINT              XHotSpot,
  [in] UINT              YHotSpot,
  [in] IDirect3DSurface9 *pCursorBitmap
);

Parametri

[in] XHotSpot

Tipo: UINT

Offset di coordinate X (in pixel) che contrassegna il centro del cursore. L'offset è relativo all'angolo superiore sinistro del cursore. Quando al cursore viene assegnata una nuova posizione, l'immagine viene disegnata in corrispondenza di un offset da questa nuova posizione determinata sottraendo le coordinate del punto attivo dalla posizione.

[in] YHotSpot

Tipo: UINT

Offset delle coordinate Y (in pixel) che contrassegna il centro del cursore. L'offset è relativo all'angolo superiore sinistro del cursore. Quando al cursore viene assegnata una nuova posizione, l'immagine viene disegnata in corrispondenza di un offset da questa nuova posizione determinata sottraendo le coordinate del punto attivo dalla posizione.

[in] pCursorBitmap

Tipo: IDirect3DSurface9*

Puntatore a un'interfaccia IDirect3DSurface9 . Questo parametro deve puntare a una superficie ARGB 8888 (formato D3DFMT_A8R8G8B8). Il contenuto di questa superficie verrà copiato e potenzialmente convertito in un buffer interno da cui viene visualizzato il cursore. Le dimensioni di questa superficie devono essere inferiori alle dimensioni della modalità di visualizzazione e devono essere una potenza di due in ogni direzione, anche se non necessariamente la stessa potenza di due. Il canale alfa deve essere 0.0 o 1.0.

Valore restituito

Tipo: HRESULT

Se il metodo ha esito positivo, il valore restituito viene D3D_OK. Se il metodo ha esito negativo, il valore restituito può essere D3DERR_INVALIDCALL.

Commenti

Viene creato e usato un cursore del sistema operativo in una di queste condizioni:

  • L'hardware ha impostato D3DCURSORCAPS_COLOR (vedere D3DCURSORCAPS) e la dimensione del cursore è 32x32 (ovvero la dimensione del cursore nel sistema operativo).
  • L'applicazione è in esecuzione in modalità finestra.
In caso contrario, DirectX usa un cursore emulato. Un'applicazione usa IDirect3DDevice9::SetCursorPosition per spostare un cursore emulato per seguire lo spostamento del mouse.

È consigliabile per le applicazioni intercettare sempre gli eventi WM_MOUSEMOVE e chiamare DXSetCursorPosition.

Le funzioni cursori Direct3D usano cursore GDI o emulazione software, a seconda dell'hardware. Gli utenti in genere vogliono rispondere a un messaggio di WM_SETCURSOR. Ad esempio, potrebbero voler scrivere il gestore di messaggi come indicato di seguito:


case WM_SETCURSOR:
// Turn off window cursor. 
SetCursor( NULL );
m_pd3dDevice->ShowCursor( TRUE );
return TRUE; // Prevent Windows from setting cursor to window class cursor.
break;

In alternativa, gli utenti potrebbero voler chiamare il metodo IDirect3DDevice9::SetCursorProperties se vogliono modificare il cursore.

L'applicazione può determinare il supporto hardware disponibile per i cursori esaminando i membri appropriati della struttura D3DCAPS9 . In genere, l'hardware supporta solo cursori 32x32 e, in caso di finestra, il sistema potrebbe supportare solo 32 cursorix32. In questo caso , IDirect3DDevice9::SetCursorProperties riesce ancora, ma il cursore potrebbe essere ridotto a tale dimensione. L'area ad accesso frequente viene ridimensionata in modo appropriato.

Il cursore non sopravvive quando il dispositivo viene perso. Questo metodo deve essere chiamato dopo la reimpostazione del dispositivo.

Requisiti

   
Piattaforma di destinazione Windows
Intestazione d3d9.h (include D3D9.h)
Libreria D3D9.lib

Vedi anche

D3DCAPS9

IDirect3DDevice9

IDirect3DDevice9::ShowCursor