我设置了自己的光标:
HCURSOR hCurStandard = LoadCursorFromFile(TEXT("cursor.cur"));
SetSystemCursor(hCurStandard, 32512);
DestroyCursor(hCurStandard);
Run Code Online (Sandbox Code Playgroud)
如何返回并设置默认光标?
这不起作用:
SetSystemCursor(LoadCursor(0, IDC_ARROW), 32512);
Run Code Online (Sandbox Code Playgroud)
- - 编辑 - - -
HCURSOR hcursor = LoadCursor(0, IDC_ARROW);
HCURSOR hcursor_copy = CopyCursor(hcursor);
BOOL ret = SetSystemCursor(hcursor_copy, OCR_NORMAL);
DestroyCursor(hcursor);
Run Code Online (Sandbox Code Playgroud)
这适用于除IDC_ARROW之外的所有游标,是什么......?
小智 6
问题是您可能使用SetSystemCursor函数来更改标准箭头光标.此函数实际上使用您提供的HCURSOR覆盖系统光标,因此当您使用IDC_ARROW调用LoadCursor时,它会加载您的自定义光标.这解释了程序的奇怪行为.为避免这种情况,您应该在更改之前保存默认系统光标.
HCURSOR def_arrow_cur = CopyCursor(LoadCursor(0, IDC_ARROW));
//now you have a copy of the original cursor
SetSystemCursor(LoadCursorFromFile("my_awesome_cursor.cur"),OCR_NORMAL);
...
SetSystemCursor(def_arrow_cur,OCR_NORMAL);//restore the good old arrow
Run Code Online (Sandbox Code Playgroud)
我知道这是一个迟到的答案,但我希望有人会觉得这很有用.