次の方法で共有


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) を指す必要があります。 このサーフェスの内容がコピーされ、カーソルが表示される内部バッファーに形式変換される可能性があります。 このサーフェスの寸法は、表示モードの寸法よりも小さく、各方向に 2 の累乗である必要がありますが、必ずしも 2 の同じ累乗ではありません。 アルファ チャネルは 0.0 または 1.0 である必要があります。

戻り値

種類: HRESULT

メソッドが成功した場合、戻り値はD3D_OK。 メソッドが失敗した場合は、戻り値をD3DERR_INVALIDCALLできます。

注釈

オペレーティング システム カーソルが作成され、次のいずれかの条件で使用されます。

  • ハードウェアでD3DCURSORCAPS_COLORが設定されており ( D3DCURSORCAPS参照)、カーソル サイズは 32 x 32 (オペレーティング システムのカーソル サイズ) です。
  • アプリケーションがウィンドウ モードで実行されています。
それ以外の場合、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 構造の適切なメンバーを調べることで、カーソルに使用できるハードウェア サポートを判断できます。 通常、ハードウェアは 32 x 32 カーソルのみをサポートし、ウィンドウが表示されている場合、システムは 32 x 32 カーソルのみをサポートする場合があります。 この場合、 IDirect3DDevice9::SetCursorProperties は引き続き成功しますが、カーソルがそのサイズに縮小される可能性があります。 ホット スポットは適切にスケーリングされます。

デバイスが失われた場合、カーソルは存続しません。 このメソッドは、デバイスのリセット後に呼び出す必要があります。

要件

要件
対象プラットフォーム Windows
ヘッダー d3d9helper.h (D3D9.h を含む)
Library D3D9.lib

こちらもご覧ください

D3dcaps9

IDirect3DDevice9

IDirect3DDevice9::ShowCursor