Microsoft DirectX 8.0 (C++)

IDirect3DDevice8::SetCursorProperties

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

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

パラメータ

XHotSpot
[in] カーソルの左上角を基準としてカーソルの内部に向かう X 座標オフセット (ピクセル単位)。カーソルの中心と見なされる。カーソルが新しい位置に指定された場合、イメージは、この新しい位置からのオフセットに描かれる。この新しい位置は、その位置からホット スポットの座標を引くことによって決定された位置である。
YHotSpot
[in] カーソルの左上角を基準としてカーソルの内部に向かう Y 座標オフセット (ピクセル単位)。カーソルの中心と見なされる。カーソルが新しい位置に指定された場合、イメージは、この新しい位置からのオフセットに描かれる。この新しい位置は、その位置からホット スポットの座標を引くことによって決定された位置である。
pCursorBitmap
[in] IDirect3DSurface8 インターフェイスへのポインタ。このパラメータは、8888 ARGB サーフェス (フォーマットは D3DFORMAT_A8R8G8B8) をポイントしていなければならない。このサーフェスのコンテンツは、カーソルの表示に使われる内部バッファにコピーされて、同時にフォーマット変換が行われる場合がある。このサーフェスのディメンジョンはディスプレイ モードのディメンジョンより小さくなければならず、各方向とも 2 の累乗でなければならない。ただし、両方向が同じ大きさでなくてもかまわない。アルファ チャネルは、0.0 または 1.0 でなければならない。

戻り値

成功した場合は、D3D_OK を返す。

失敗した場合は、D3DERR_INVALIDCALL を返す。

注意

Microsoft® Direct3D® のカーソル関数では、ハードウェアに応じて、GDI カーソルまたはソフトウェア エミュレーションのいずれかを使用する。ユーザーは通常、WM_SETCURSOR メッセージに応じる。たとえば、ユーザーはメッセージ ハンドラを次のように記述できる。

case WM_SETCURSOR:
    // ウィンドウ カーソルをオフにする。
    SetCursor( NULL );
    m_pd3dDevice->ShowCursor( TRUE );
    return TRUE; // Windows がカーソルをウィンドウ クラス カーソルに設定しないようにする。
break;

また、カーソルを変更する場合は、ユーザーは IDirect3DDevice8::SetCursorProperties メソッドを呼び出すことができる。詳細については、Microsoft DirectX® Graphics C/C++ サンプルのサンプル コードを参照すること。

アプリケーションでは、D3DCAPS8 構造体の適切なメンバを調べることで、カーソルで利用可能なハードウェア サポートを確認できる。一般に、ハードウェアがサポートするのは 32 × 32 のカーソルだけである。さらに、ウィンドウ モードでは、システムがサポートできるのも 32 × 32 のカーソルだけである。その場合でも SetCursorProperties は成功するが、カーソルはこのサイズに縮小されて、ホットスポットは適切にスケーリングされる可能性がある。

動作環境

  ヘッダー : d3d8.h で宣言。
  インポート ライブラリ : D3d8.lib を使用。

参照

IDirect3DDevice8::SetCursorPositionIDirect3DDevice8::ShowCursorD3DCAPS8