【发布时间】:2014-09-29 23:58:51
【问题描述】:
我正在尝试将默认操作系统光标更改为自定义光标。截至目前,我只处理Windows。我得到了一个带有我想要的光标的图像文件(.png,我应该更改格式吗?)。 总而言之,我一直在搜索并尝试简单地更改光标,但没有成功。 另外,到目前为止,我正在寻找最简单的解决方案,尽可能少的代码行。
如果相关:
-我正在使用使用 SFML(2.1) 创建的窗口。
- 以下编译但没有区别:
HCURSOR hCursor = LoadCursor(NULL, "path/filename.png");
SetCursor(hCursor);
那么,我正在寻求社区的知识,有什么想法吗?
以下作品:) 但是它会立即恢复为默认的 Windows 鼠标:
HCURSOR hCursor = LoadCursorFromFile("path/filename.cur");
SetCursor(hCursor);
我发现了这个LINK,这似乎和我的问题一样。
但是,我无法应用链接中给出的答案
HWND windowHandle;
int GCL_Hcursor = -12; //GCL_HCURSOR
HCURSOR hCursor = LoadCursorFromFile("Graphics/Cursors/Pointer_small.cur");
SetCursor(hCursor);
SetClassLong(windowHandle, GCL_Hcursor, (DWORD)hCursor);
我(显然?)得到:
使用了未初始化的局部变量“windowHandle”
【问题讨论】:
-
它必须是 .cur 或 .ani 文件......使用支持该格式的资源编辑器或图形包......如果要从文件加载,请使用 LoadCursorFromFile.. ..或将其放入您的“资源”中,并使用 LoadCursor 访问该资源(通过其“id”)。 ....msdn.microsoft.com/en-gb/library/windows/desktop/…
-
谢谢 :) 它现在可以在屏幕上加载和显示光标 :) 它确实消失了
-
为什么不简单地隐藏光标(它是 sf::Window 类的成员函数)并在鼠标位置显示一个精灵?这比覆盖操作系统光标要简单得多。
-
这样做输入延迟很糟糕。通过覆盖 OS 光标,即使在低 fps 下也不会出现输入延迟。
标签: c++ windows mfc sfml mouse-cursor