1

我有一个在 Direct3D9 下运行的应用程序。该应用程序使用 Direct3D HW 光标 API(IDirect3DDevice9::SetCursorProperties等)来控制光标。几乎一切正常:

  • 在应用程序窗口内时,显示由 SetCursorProperties 指定的光标
  • 在应用程序窗口之外时,桌面或其他窗口根据需要显示正常的操作系统光标

问题出在我窗口的非客户区(标题栏、屏幕边缘)。在非客户区移动时,会简单显示该区域功能对应的光标,但一旦停止移动,SetCursorProperties中设置的光标又会显示出来。

什么是正确的使用方法,IDirect3DDevice9::SetCursorProperties以便在我的窗口非客户区获得默认操作系统光标?

4

1 回答 1

1

在尝试了各种事情之后,应用程序中的以下更改为我解决了这个问题:

  • 在窗口过程中,当接收到 a 时,在全局变量中WM_SETCURSOR记住条件的结果 (lParam&0xffff)==HTCLIENTCursorInClient
  • 当全局变量CursorInClient为 false 时,避免调用IDirect3DDevice9::ShowCursor
于 2010-12-20T13:17:14.330 回答