Metodo IDirect3DDevice9::SetCursorProperties (d3d9helper.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.
È 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
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | d3d9helper.h (include D3D9.h) |
Libreria | D3D9.lib |