我使用 SetSystemCursor 更改系统光标,但是当我尝试使用 DestroyCursor 将系统光标重置为正常时,没有任何反应!
有任何想法吗 ?
谢谢 !
我使用 SetSystemCursor 更改系统光标,但是当我尝试使用 DestroyCursor 将系统光标重置为正常时,没有任何反应!
有任何想法吗 ?
谢谢 !
或者,您可以将系统光标恢复为默认值,如下所示:
SystemParametersInfo(SPI_SETCURSORS, 0, NULL, 0);
其中SPI_SETCURSORS
定义为,如此处0x0057
所述
如文档所述, SetSystemCursor() 函数已经销毁了传递的游标,因此再次销毁它不会产生任何影响。
您需要存储旧光标的副本,以便以后恢复它:
// Global Variables:
HCURSOR hOldCursor;
...
hOldCursor = CopyCursor(LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW)));
HCURSOR hNewCursor = CopyCursor(LoadCursor(hInstance, MAKEINTRESOURCE(IDC_MYCURSOR)));
SetSystemCursor(hNewCursor, OCR_NORMAL);
并像这样恢复它:
SetSystemCursor(hOldCursor, OCR_NORMAL);
DestroyCursor(hOldCursor);
hOldCursor = NULL;
请注意,当您的程序终止而不恢复光标时,您会造成相当大的痛苦。根据我测试此代码的经验。更改系统光标非常不友好,因为它会对桌面上运行的所有其他程序产生全局影响。