IDirect3DDevice9::SetCursorProperties-Methode (d3d9.h)
Legt Eigenschaften für den Cursor fest.
Syntax
HRESULT SetCursorProperties(
[in] UINT XHotSpot,
[in] UINT YHotSpot,
[in] IDirect3DSurface9 *pCursorBitmap
);
Parameter
[in] XHotSpot
Typ: UINT
X-Koordinatenoffset (in Pixel), der die Mitte des Cursors markiert. Der Offset ist relativ zur linken oberen Ecke des Cursors. Wenn der Cursor eine neue Position erhält, wird das Bild an einem Offset von dieser neuen Position gezeichnet, die durch Subtrahieren der Heißpunktkoordinaten von der Position bestimmt wird.
[in] YHotSpot
Typ: UINT
Y-Koordinatenoffset (in Pixel), der die Mitte des Cursors markiert. Der Offset ist relativ zur linken oberen Ecke des Cursors. Wenn der Cursor eine neue Position erhält, wird das Bild an einem Offset von dieser neuen Position gezeichnet, die durch Subtrahieren der Heißpunktkoordinaten von der Position bestimmt wird.
[in] pCursorBitmap
Typ: IDirect3DSurface9*
Zeiger auf eine IDirect3DSurface9-Schnittstelle . Dieser Parameter muss auf eine 8888 ARGB-Oberfläche verweisen (Format D3DFMT_A8R8G8B8). Der Inhalt dieser Oberfläche wird kopiert und möglicherweise formatiert in einen internen Puffer konvertiert, aus dem der Cursor angezeigt wird. Die Abmessungen dieser Oberfläche müssen kleiner als die Dimensionen des Anzeigemodus sein und eine Leistung von zwei in jede Richtung sein, obwohl nicht notwendigerweise die gleiche Leistung von zwei. Der Alphakanal muss entweder 0,0 oder 1,0 sein.
Rückgabewert
Typ: HRESULT
Wenn die Methode erfolgreich ist, wird der Rückgabewert D3D_OK. Wenn die Methode fehlschlägt, kann der Rückgabewert D3DERR_INVALIDCALL werden.
Hinweise
Ein Betriebssystemcursor wird unter einer der folgenden Bedingungen erstellt und verwendet:
- Die Hardware hat D3DCURSORCAPS_COLOR festgelegt (siehe D3DCURSORCAPS), und die Cursorgröße ist 32x32 (dies ist die Cursorgröße im Betriebssystem).
- Die Anwendung wird im Fenstermodus ausgeführt.
Es wird empfohlen, dass Anwendungen immer WM_MOUSEMOVE Ereignisse fangen und DXSetCursorPosition aufrufen.
Direct3D-Cursorfunktionen verwenden je nach Hardware entweder GDI-Cursor oder Softwareemulation. Benutzer möchten in der Regel auf eine WM_SETCURSOR Nachricht antworten. Sie können den Nachrichtenhandler z. B. wie folgt schreiben:
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;
Oder Benutzer können die IDirect3DDevice9::SetCursorProperties-Methode aufrufen, wenn sie den Cursor ändern möchten.
Die Anwendung kann ermitteln, welche Hardwareunterstützung für Cursor verfügbar ist, indem sie die entsprechenden Member der D3DCAPS9-Struktur untersucht. In der Regel unterstützt die Hardware nur 32x32-Cursor, und wenn ein Fenster geöffnet wird, unterstützt das System möglicherweise nur 32x32-Cursor. In diesem Fall ist IDirect3DDevice9::SetCursorProperties weiterhin erfolgreich, aber der Cursor wird möglicherweise auf diese Größe reduziert. Der Hotspot wird entsprechend skaliert.
Der Cursor überlebt nicht, wenn das Gerät verloren geht. Diese Methode muss aufgerufen werden, nachdem das Gerät zurückgesetzt wurde.
Anforderungen
Zielplattform | Windows |
Kopfzeile | d3d9.h (einschließlich D3D9.h) |
Bibliothek | D3D9.lib |