IDirect3DDevice9::SetCursorProperties 方法 (d3d9helper.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
標頭 d3d9helper.h (包含 D3D9.h)
程式庫 D3D9.lib

另請參閱

D3DCAPS9

IDirect3DDevice9

IDirect3DDevice9::ShowCursor