MFC 設置鼠標樣式(SetSystemCursor函數問題)


  簡單說一下在使用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函數的話,只會使光標資源越來越亂。。。。。。

  解決方法:

  點擊確定就可以重載光標類型了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM