ale*_*rtr 6 .net c# windows visual-c++
我使用SetSystemCursor更改系统光标但是当我尝试使用DestroyCursor将系统光标重置为nornal时没有任何反应!
有任何想法吗 ?
谢谢 !
另外,您可以将系统光标恢复为默认值,如下所示:
SystemParametersInfo(SPI_SETCURSORS, 0, NULL, 0);
Run Code Online (Sandbox Code Playgroud)
其中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);
Run Code Online (Sandbox Code Playgroud)
并像这样恢复它:
SetSystemCursor(hOldCursor, OCR_NORMAL);
DestroyCursor(hOldCursor);
hOldCursor = NULL;
Run Code Online (Sandbox Code Playgroud)
请注意,程序在没有恢复光标的情况下终止时会产生相当大的痛苦.正如我经验测试此代码.更改系统游标非常不友好,因为它对桌面上运行的所有其他程序具有全局影响.
| 归档时间: |
|
| 查看次数: |
1446 次 |
| 最近记录: |