【发布时间】:2020-08-06 16:09:05
【问题描述】:
我需要提取光标图像以便在我的 Swing 应用程序 (Java) 中使用它。
首先,我找到了similar question,从一个答案中修改了代码sn-p,得到了这个sandbox application。
简而言之,它通过JNA和WinAPI获取光标图像,然后在JFrame上显示该图像并为该帧设置自定义光标。
在大多数情况下,此代码可以正常工作并且适合我的任务。但是后来我发现当用户改变光标的大小或颜色时(Windows 10 feature),程序会提取出一个无效的光标图像,它在颜色和大小上都与原始光标不匹配。
当用户有标准光标时:
当用户有例如粉红色光标然后比标准光标大:
在这种情况下,我决定做同样的沙盒应用程序,但通过 C++ 和 WinAPI。我使用了这个question 的答案,但只解决了颜色问题。
我认为主要的瓶颈是GetSystemMetrics 函数返回默认光标大小(32x32),并且在光标大小改变后它不会改变。我找到了一些证明here,但我不确定。
所以我的问题是:
如何获得光标的实际大小?
提前非常感谢!
【问题讨论】:
-
这能回答你的问题吗? How to get mouse cursor icon VS c++
-
@ÖöTiib 在我的 cpp 沙箱中我做了同样的事情,但它不处理光标的大小变化。光标始终为 32x32。
标签: java c++ swing winapi windows-10