简单说一下在使用MFC中设置鼠标样式的问题,在使用SetSystemCursor函数后,程序退出后并不会自动还原鼠标样式
BOOL SetSystemCursor( HCURSOR hcur,DWORD id )
该函数使一个应用程序定制系统光标。它用hcur规定的光标内容代替id定义的系统光标内容,接着销毁hcur。
id比较常用的值:
OCR_APPSTARTING:标准箭头和小的沙漏;OCR_NORMAL:标准箭头
OCR_CROSS:交叉十字线光标:OCR_HAND:手的形状(WindowsNT5.0和以后版本)
OCR_HELP:箭头和向东标记;OCR_IBEAM:I形梁;OCR_NO:斜的圆
OCR_SIZEALL:四个方位的箭头分别指向北、南、东、西
OCR_SIZENESEW:双箭头分别指向东北和西南;OCR_SIZENS:双箭头,分别指向北和南
OCR_SIZENWSE:双箭头分别指向西北和东南;OCR_SIZEWE:双箭头分别指向西和东
OCR_UP:垂直箭头:OCR_WAIT:沙漏返回值
这里我使用的是CopyCursor函数解决的
HCURSOR CopyCursor(HCURSOR pcur)
//复制需要被修改的光标资源
//变量要是全局变量
HCURSOR hCur = CopyCursor(LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW)));
//设置需要改变的光标
//这里最好也拷贝一下,原因不明
BOOL iRet = SetSystemCursor(CopyCursor(LoadCursor(NULL, MAKEINTRESOURCE(IDC_CROSS))), OCR_NORMAL);
,,,,,,,
//还原光标
iRet = SetSystemCursor(hCur, OCR_NORMAL);
最后说一说如果一开始没有还原鼠标资源对应的光标,继续调用SetSystemCursor函数的话,只会使光标资源越来越乱。。。。。。
解决方法:
点击确定就可以重载光标类型了。