IDirect3DDevice9::SetCursorProperties 方法 (d3d9.h)

設定資料指標的屬性。

語法

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

參數

[in] XHotSpot

類型: UINT

以圖元為單位的 X 座標位移 (,) 標示游標的中心。 位移相對於游標的左上角。 當游標獲得新位置時,影像會從這個新位置的位移繪製,方法是從位置減去作用點座標。

[in] YHotSpot

類型: UINT

以圖元為單位的 Y 座標位移 (,) 標示游標的中心。 位移相對於游標的左上角。 當游標獲得新位置時,影像會從這個新位置的位移繪製,方法是從位置減去作用點座標。

[in] pCursorBitmap

類型: IDirect3DSurface9*

IDirect3DSurface9介面的指標。 此參數必須指向 8888 ARGB 表面 (格式D3DFMT_A8R8G8B8) 。 此表面的內容將會複製,並可能將格式轉換成顯示游標的來源內部緩衝區。 此表面的維度必須小於顯示模式的維度,而且必須是兩個方向的乘冪,但不一定是兩個的相同乘冪。 Alpha 色板必須是 0.0 或 1.0。

傳回值

類型: HRESULT

如果方法成功,傳回值會D3D_OK。 如果方法失敗,則可以D3DERR_INVALIDCALL傳回值。

備註

作業系統資料指標會在下列任一狀況下建立及使用:

  • 硬體已設定D3DCURSORCAPS_COLOR (請參閱 D3DCURSORCAPS) ,而資料指標大小為 32x32 (,這是作業系統) 中的資料指標大小。
  • 應用程式正在視窗模式中執行。
否則,DirectX 會使用模擬的資料指標。 應用程式會使用 IDirect3DDevice9::SetCursorPosition 來移動模擬游標,以追蹤滑鼠移動。

建議應用程式一律捕捉WM_MOUSEMOVE事件,並呼叫 DXSetCursorPosition。

Direct3D 資料指標函式會根據硬體使用 GDI 資料指標或軟體模擬。 使用者通常會想要回應WM_SETCURSOR訊息。 例如,他們可能會想要撰寫訊息處理常式,如下所示:


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;

或者,如果使用者想要變更資料指標,可能會想要呼叫 IDirect3DDevice9::SetCursorProperties 方法。

應用程式可以檢查 D3DCAPS9 結構的適當成員,來判斷資料指標可用的硬體支援。 一般而言,硬體僅支援 32x32 資料指標,而且當視窗化時,系統可能只支援 32x32 資料指標。 在此情況下, IDirect3DDevice9::SetCursorProperties 仍然成功,但游標可能會縮減為該大小。 作用點會適當地調整。

當裝置遺失時,游標不會存留。 重設裝置之後,必須呼叫這個方法。

需求

   
目標平台 Windows
標頭 d3d9.h (包含 D3D9.h)
程式庫 D3D9.lib

另請參閱

D3DCAPS9

IDirect3DDevice9

IDirect3DDevice9::ShowCursor