次の方法で共有


IDirect3DDevice9::SetCursorProperties

カーソルのプロパティを設定します。

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

パラメータ

  • XHotSpot
    カーソルの中心をマークする X 座標オフセット (ピクセル単位) です。オフセットはカーソルの左上隅を基準にしています。カーソルに新しい位置を指定すると、イメージは新しい位置からホット スポット座標を除算して決定される、新しい位置からのオフセットで描画されます。
  • YHotSpot
    カーソルの中心をマークする Y 座標オフセット (ピクセル単位) です。オフセットはカーソルの左上隅を基準にしています。カーソルに新しい位置を指定すると、イメージは新しい位置からホット スポット座標を除算して決定される、新しい位置からのオフセットで描画されます。
  • pCursorBitmap
    IDirect3DSurface9 インターフェイスへのポインターです。このパラメーターは、8888 ARGB サーフェス (フォーマット D3DFMT_A8R8G8B8) をポイントする必要があります。このサーフェスのコンテンツは、カーソルを表示するソースの内部バッファーにコピーされ、フォーマットも変更される場合があります。このサーフェスのサイズは、表示モードのサイズ未満である必要があり、各方向で 2 の累乗である必要がありますが、必ずしも同じ 2 の累乗である必要はありません。アルファ チャンネルは 0.0 または 1.0 である必要があります。

戻り値

メソッドが成功した場合は、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 は引き続き成功しますが、カーソルはそのサイズに縮小されることがあります。ホット スポットは適切にスケーリングされます。

デバイスが消失した場合、カーソルは存在しなくなります。デバイスをリセットした後、このメソッドを呼び出す必要があります。

要件

ヘッダー: D3D9.h 宣言

ライブラリ: D3D9.lib 内容

関連項目

IDirect3DDevice9::ShowCursor, D3DCAPS9