使用 IDirect3DDevice9::SetCursorProperties 时光标在非客户区域闪烁

发布于 2024-10-08 07:00:54 字数 427 浏览 2 评论 0原文

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

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

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

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

I have an application running under Direct3D9. The application is using the Direct3D HW cursor API (IDirect3DDevice9::SetCursorProperties et al.) to control the cursor. Almost everything works fine:

  • when inside of the application window, the cursor specified by SetCursorProperties is shown
  • when outside of the application window, normal OS cursor is displayed as needed by desktop or other windows

The problem is with the non-client area of my window (the title bar, screen edges). When moving in the non-client area, the cursor corresponding to the function of the area is breifly shown, but once I stop moving, the cursor set in SetCursorProperties is shown again.

What is the correct way to use IDirect3DDevice9::SetCursorProperties so that I get the default OS cursors on my window non-client area?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

别靠近我心 2024-10-15 07:00:54

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

  • 在窗口过程中,当收到 WM_SETCURSOR 时,记住条件 (lParam&0xffff )==HTCLIENT 在全局变量 CursorInClient
  • 当全局变量 CursorInClient 为 false 时,避免调用 IDirect3DDevice9::ShowCursor

After experimenting with various things, a following change in the application has solved the issue for me:

  • In a window procedure, when a WM_SETCURSOR is received, remember a result of a condition (lParam&0xffff)==HTCLIENT in a global variable CursorInClient
  • When the global variable CursorInClient is false, avoid calling IDirect3DDevice9::ShowCursor
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文