Share via


IDirect3DDevice9 ::SetCursorProperties, méthode (d3d9helper.h)

Définit les propriétés du curseur.

Syntaxe

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

Paramètres

[in] XHotSpot

Type : UINT

Décalage de coordonnées X (en pixels) qui marque le centre du curseur. Le décalage est relatif au coin supérieur gauche du curseur. Lorsque le curseur reçoit une nouvelle position, l’image est dessinée à un décalage de cette nouvelle position déterminée en soustrayant les coordonnées de point chaud de la position.

[in] YHotSpot

Type : UINT

Décalage en coordonnées Y (en pixels) qui marque le centre du curseur. Le décalage est relatif au coin supérieur gauche du curseur. Lorsque le curseur reçoit une nouvelle position, l’image est dessinée à un décalage de cette nouvelle position déterminée en soustrayant les coordonnées de point chaud de la position.

[in] pCursorBitmap

Type : IDirect3DSurface9*

Pointeur vers une interface IDirect3DSurface9 . Ce paramètre doit pointer vers une surface 8888 ARGB (format D3DFMT_A8R8G8B8). Le contenu de cette surface sera copié et éventuellement converti en mémoire tampon interne à partir de laquelle le curseur est affiché. Les dimensions de cette surface doivent être inférieures aux dimensions du mode d’affichage, et doivent être une puissance de deux dans chaque direction, mais pas nécessairement la même puissance de deux. Le canal alpha doit être 0.0 ou 1.0.

Valeur retournée

Type : HRESULT

Si la méthode réussit, la valeur de retour est D3D_OK. Si la méthode échoue, la valeur de retour peut être D3DERR_INVALIDCALL.

Remarques

Un curseur de système d’exploitation est créé et utilisé dans l’une des conditions suivantes :

  • Le matériel a défini D3DCURSORCAPS_COLOR (voir D3DCURSORCAPS) et la taille du curseur est de 32 x 32 (qui est la taille du curseur dans le système d’exploitation).
  • L’application s’exécute en mode fenêtré.
Sinon, DirectX utilise un curseur émulé. Une application utilise IDirect3DDevice9 ::SetCursorPosition pour déplacer un curseur émulé afin de suivre le mouvement de la souris.

Il est recommandé aux applications de toujours intercepter les événements WM_MOUSEMOVE et d’appeler DXSetCursorPosition.

Les fonctions de curseur Direct3D utilisent le curseur GDI ou l’émulation logicielle, selon le matériel. Les utilisateurs souhaitent généralement répondre à un message WM_SETCURSOR. Par exemple, ils peuvent vouloir écrire le gestionnaire de messages comme suit :


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;

Les utilisateurs peuvent également appeler la méthode IDirect3DDevice9 ::SetCursorProperties s’ils souhaitent modifier le curseur.

L’application peut déterminer la prise en charge matérielle disponible pour les curseurs en examinant les membres appropriés de la structure D3DCAPS9 . En règle générale, le matériel ne prend en charge que les curseurs 32 x 32 et, lorsqu’il est fenêtré, le système ne peut prendre en charge que les curseurs 32 x 32. Dans ce cas, IDirect3DDevice9 ::SetCursorProperties réussit toujours, mais le curseur peut être réduit à cette taille. Le point chaud est mis à l’échelle de manière appropriée.

Le curseur ne survit pas en cas de perte de l’appareil. Cette méthode doit être appelée après la réinitialisation de l’appareil.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête d3d9helper.h (inclure D3D9.h)
Bibliothèque D3D9.lib

Voir aussi

D3DCAPS9

IDirect3DDevice9

IDirect3DDevice9 ::ShowCursor