1

Direct3D9 でアプリケーションを実行しています。アプリケーションは、Direct3D HW カーソル API (IDirect3DDevice9::SetCursorPropertiesなど) を使用してカーソルを制御しています。ほとんどすべてが正常に動作します:

  • アプリケーション ウィンドウ内では、SetCursorProperties で指定されたカーソルが表示されます。
  • アプリケーション ウィンドウの外にある場合、デスクトップまたは他のウィンドウの必要に応じて、通常の OS カーソルが表示されます。

問題は、ウィンドウの非クライアント領域 (タイトル バー、画面の端) にあります。非クライアント領域で移動すると、その領域の機能に対応するカーソルが短く表示されますが、移動を停止すると、SetCursorProperties で設定されたカーソルが再び表示されます。

IDirect3DDevice9::SetCursorPropertiesウィンドウの非クライアント領域でデフォルトの OS カーソルを取得するための正しい使用方法は何ですか?

4

1 に答える 1

1

さまざまなことを試した後、アプリケーションの次の変更により問題が解決しました。

  • ウィンドウ プロシージャで、 を受け取ったときに条件の結果をグローバル変数WM_SETCURSORに記憶する (lParam&0xffff)==HTCLIENTCursorInClient
  • グローバル変数CursorInClientが false の場合、呼び出しを避けるIDirect3DDevice9::ShowCursor
于 2010-12-20T13:17:14.330 に答える