c++ - 如何使用自定义光标防止系统鼠标光标在 C++ 应用程序中移动?

标签 c++ mouse mouseevent wndproc

我正在编写一个 OpenGL/DX 应用程序,我在其中读取 WndProc() 中的 WM_INPUT 消息以移动自定义鼠标光标。系统鼠标光标在应用程序窗口上方/中时通过 ShowCursor(false) 隐藏。

问题是当我移动鼠标时,系统鼠标光标仍然移动。所以两个光标(正常系统光标和我的应用程序中的自定义光标)同时移动。鼠标点击也是如此。

所以我的问题是:如何在应用程序运行时阻止系统鼠标光标移动(和单击),以便只有自定义鼠标光标起作用?

最佳答案

光标只是为了显示。隐藏默认光标并绘制您自己的光标不会影响移动和单击。

我猜你在做什么有两种可能性:

  1. 如果您只想显示自定义光标,您应该只在鼠标位于窗口内时隐藏系统光标。因此,当光标在您的窗口之外时,用户知道他/她在做什么。或者,您可以使用 ClipMouse 将鼠标限制在窗口内。

  2. 如果您完全自己使用 DirectInput 之类的工具来操作鼠标,那么您应该再次使用 ClipMouse。

关于c++ - 如何使用自定义光标防止系统鼠标光标在 C++ 应用程序中移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16882991/

相关文章:

java - 在Java中的整个屏幕上隐藏鼠标光标

python - 在 While 循环中单击鼠标(PsychoPy)

java - 如何在 Java Swing 中检测鼠标悬停在 NOTHING 上

javascript - 在另一个事件监听器函数中定义的事件监听器函数是否访问全局变量的副本?

python-3.x - 如何使按钮执行单击而不是双击

c++ - 为什么 pair 的大多数实现默认不使用压缩(空基优化)?

c++ - 从文本文件c++将外部算法加载到程序中

c++ - 如何使用多项式类重载 operator+ 以及返回什么类型

c# - P/Invoke with arrays of double - 在 C# 和 C++ 之间编码数据

c# - 如何在 GDI+ 中对具有真实形状测量值(英寸)的旋转形状进行 HitTest ?