簡單說一下在使用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函數的話,只會使光標資源越來越亂。。。。。。
解決方法:
點擊確定就可以重載光標類型了。