VC++ 6.0 设定光标可以使用SetCursor(HCURSOR hCursor)来设定,如果是新手,建议在WM_SETCURSOR消息响应函数中设置,你可以在别的地方设置,但是需要自己控制光标的变化。

1、使用系统预定义的光标:

使用ClassWizard为视图或者对话框添加WM_SETCURSOR消息的响应函数OnSetCursor();在函数中,使用SetCursor函数,然后要返回真,屏蔽掉系统的设置函数。

BOOL CMyProgramView::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
 // TODO: Add your message handler code here and/or call default
 
             SetCursor(LoadCursor(NULL,IDC_ARROW)); //设定光标为箭头,就是我们平时用的。

return TRUE;

return CView::OnSetCursor(pWnd, nHitTest, message);
}

LoadCursor第一个参数是要载入光标的程序的实例,当使用系统预定义光标的时候,要设置为空。当要使用自定义光标的时候,设置为AfxGetInstanceHandle(),使用自定义的光标,在第2点中讲。

更换LoadCursor中的第二个参数,就能得到不同的系统预定义光标。

IDC_APPSTARTING 标准的箭头和小沙漏

IDC_ARROW 标准的箭头
IDC_CROSS 十字光标
IDC_HELP 标准的箭头和问号
IDC_IBEAM 工字光标
IDC_NO 禁止圈
IDC_SIZEALL 四向箭头指向东、西、南、北
IDC_SIZENESW 双箭头指向东北和西南
IDC_SIZENS 双箭头指向南北
IDC_SIZENWSE 双箭头指向西北和东南
IDC_SIZEWE 双箭头指向东西
IDC_UPARROW 垂直箭头
IDC_WAIT 沙漏
2、使用自定义光标:
首先在资源中添加一个光标,和你添加对话框是一样的,然后画图。系统默认是黑白色彩的光标,可以修改为彩色的光标。修改方法为:
点击NewDevieImage工具条:
然后点击Custom,设置颜色为256色。
点击OK。
自己画好光标后,就可以把画好的光标设置为系统使用的光标了:
方法还是再OnSetCursor函数中使用SetCursor函数,只是LoadCursor的参数不一样:

BOOL CMyProgramView::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
 // TODO: Add your message handler code here and/or call default
 
            SetCursor(LoadCursor(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDC_MYCURSOR)));
             return TRUE;

return CView::OnSetCursor(pWnd, nHitTest, message);
}

LoadCursor第一个参数要为当前应用程序的实例,使用AfxGetInstanceHandle()得到,第二个参数为刚才新建的光标的ID。这样,程序的光标就设定为你需要的了。
3、如何动态更换光标:
很多时候需要动态的更换光标,这里建议是自己定义一些标志,然后在OnSetCursor中判断标志,当标志为一个值的时候,设定什么光标。
4、什么时候系统会发送设置光标消息:WM_SETCURSOR。
原文的定义是这样:The WM_SETCURSOR message is sent to a window if the mouse causes the cursor to move within a window and mouse input is not captured。
只要鼠标事件发生就会自动发送 WM_SETCURSOR从而触发OnSetCursor。你可以再鼠标按下的函数中使用SetCursor来设置一个光标,你会发现光标确实改变了。但是只要你移动鼠标,或者放开鼠标,光标就变回去了。

MFC 设置光标 SetCursor(HCURSOR hCursor)用法相关推荐

  1. Visual C++——设置光标Cursor

    API LoadCursor:第一个参数是要载入光标的程序的实例,当使用系统预定义光标的时候,要设置为空.当要使用自定义光标的时候,设置为AfxGetInstanceHandle(). 更换LoadC ...

  2. [图解]在输入框和文本框中获取和设置光标位置,以及选中文本和获取选中文本值的方法 --- 详解,兼容所有浏览器。...

    为什么80%的码农都做不了架构师?>>>    写在前面 最近在segmentfault上看到它的日期输入控件,感觉挺有意思.好吧,动手写一个,加到自己的代码库里吧. 然后问题来了, ...

  3. HTML+CSS---定位(相对定位--绝对定位--固定定位--设置元素的层叠顺序)---表单---设置光标样式---透明度(opacity属性定义元素的不透明度--IE的半透明滤镜)---外边线

    文章目录 定位 静态定位(static) 相对定位(relative) 绝对定位(absolute) 固定定位(fixed) 设置元素的层叠顺序 表单 设置光标样式 透明度 opacity属性定义元素 ...

  4. PADS Router VX.2.3 设置光标的类型

    操作系统:Windows 10 x64 工具:PADS Router VX.2.3 菜单:Tools > Options...(快捷键:Ctrl + <Enter>) 在Option ...

  5. java 设置光标_java光标位置怎么设置 java设置光标位置方法

    java设置光标位置方法: 方法一. import Java.awt.TextField; import javax.swing.JFrame; public class InsertPosition ...

  6. linux设置光标位置,linux下光标定位和输出颜色设置

    printf("\033[47;31mhello world\033[5m"); 47是字背景颜色, 31是字体的颜色, hello world是字符串.  后面的\033[5m是 ...

  7. android input鼠标坐标,android - 如何在EditText中设置光标位置?

    android - 如何在EditText中设置光标位置? 有两个EditText,在加载页面时,第一个EditText中设置了一个文本,所以现在光标将在EditText的起始位置,我想在第二个Edi ...

  8. MFC设置对话框背景色及控件颜色

    MFC设置对话框背景色及控件颜色 一.使用背景图片更改对话框背景色 在对话框源文件void CxxDlg::OnPaint()函数中 if (IsIconic()) { (这里省略) } else { ...

  9. java光标_java怎么设置光标位置 java设置光标位置方法

    java设置光标位置方法: 方法一. import Java.awt.TextField; import javax.swing.JFrame; public class InsertPosition ...

最新文章

  1. 线上分享会预告之三维模型检索技术介绍
  2. C++中的文件读写操作(1)
  3. 实地址模式与保护模式下的中断与异常处理
  4. 安卓项目打开有时候manifests不见了_【必看】暴力0鲁项目详细操作及玩法如何跳过广告,不分享群等...
  5. C++递归求数组最大值、平均值、求和
  6. 马斯克表示担心人工智能可能会在5年内超越人类
  7. Auto type deducing
  8. 7.边缘检测:2D运算——Canny边缘原理、Canny边缘检测器、Canny-Matlab实战_2
  9. bzoj 1082: [SCOI2005]栅栏(二分+DFS)
  10. redux-form(V7.4.2)笔记( 五)核心模块回顾
  11. AJAX学习摘记——客户端访问WebService(上)
  12. VSCODE+MINGW配置vulkan开发环境
  13. 【php】相对路径/绝对路径报错?
  14. Linux 系统中如何恢复已删除的文件?
  15. 输入角度,输出正弦、余弦函数值
  16. 【泛函分析】 1 距离空间
  17. [转载]GMT地形数据总结
  18. requests实现登陆、点赞、批量点赞、取消点赞
  19. SAP UI5 数据类型(data type) 学习笔记
  20. 兽兽门尘埃落地 成都爆许愿门

热门文章

  1. cuda linux编译器_CUDA与Linux系统
  2. linux安装mysql社区版 rpm_linux系统rpm包安装mysql
  3. 将svg文件化成字体图标的步骤
  4. 安装elasticsearch5.4.1集群和head插件
  5. hihocoder 1260
  6. 史上最详细的Android Studio系列教程四--Gradle基础
  7. Java模拟双色球彩票
  8. GSM-串口和GPRS-网口通信
  9. [解决]Win7+Tomcat5.5 只能通过localhost或计算机名访问
  10. java中日期格式转换