当我使用内置的游标类型(例如IDC_HAND
或IDC_ARROW
)为窗口设置游标时,例如:
SetCursor(LoadCursor(NULL, MAKEINTRESOURCE(IDC_HAND)));
但是在导入游标资源(下载的游标文件或自定义的游标资源,或者仅通过使用VS创建新的游标资源)时,游标不会变差:
SetCursor(LoadCursor(NULL, MAKEINTRESOURCE(IDI_ICON1)));
OR
SetCursor(LoadCursor(NULL, MAKEINTRESOURCE(IDC_CURSOR1)));
resource.h
#define IDI_ICON1 101
#define IDC_CURSOR1 102
resource.rc
IDI_ICON1 ICON "custom_cursor.cur"
IDC_CURSOR1 CURSOR "cursor1.cur"
如您所见,由于某种原因,我的自定义光标在resource.rc中保存为“ ICON”。
IDC_CURSOR1
是由VS资源工具制作的,除了内置的游标之外,它们都不起作用。
当程序运行时光标没有改变,而是显示黑色箭头,但是如果用于ex IDC_ARROW
或IDC_HAND
则可以正常工作。
这可能是导致无法使用自定义光标的原因。
顺便说一句。我可以在Windows鼠标设置中设置自定义光标,但在VS中不起作用。
编辑:
我刚刚了解到从文件加载游标是可行的。例如:
LoadCursorFromFile(L"custom_cursor.cur");
但是无法从资源加载,我更喜欢将资源编译成可执行文件,因此我仍在寻找答案。