首页 > 编程语言 > 详细

MFC 设置鼠标样式(SetSystemCursor函数问题)

时间:2020-04-24 00:36:20      阅读:158      评论:0      收藏:0      [点我收藏+]

  简单说一下在使用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函数的话,只会使光标资源越来越乱。。。。。。

  解决方法:

技术分享图片

  点击确定就可以重载光标类型了。

MFC 设置鼠标样式(SetSystemCursor函数问题)

原文:https://www.cnblogs.com/yddsblog/p/12764564.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!