mfc 如何添加光标

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mfc 如何添加光标相关的知识,希望对你有一定的参考价值。

参考技术A 1、添加WM_SETCURSOR消息响应

eg:

BOOL CCursorHookDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)



// TODO: 在此添加消息处理程序代码和/或调用默认值

return CDialogEx::OnSetCursor(pWnd, nHitTest, message);



2、 创建光标资源IDC_CURSOR1

3、添加cursor

BOOL CCursorHookDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)



// TODO: 在此添加消息处理程序代码和/或调用默认值

//HCURSOR myCursor = AfxGetApp()->LoadCursor(IDC_HAND);

HCURSOR myCursor = LoadCursor(AfxGetApp()->m_hInstance ,MAKEINTRESOURCE(IDC_CURSOR1));

::SetCursor(myCursor);

return TRUE;

//return CDialogEx::OnSetCursor(pWnd, nHitTest, message);

本回答被提问者采纳

MFC编程的时候,改变鼠标光标样式

在rect范围内,鼠标变成移动的样式。
在rect四角和边界上,鼠标变成拖动(以改变rect大小)的双箭头模式。
怎么实现,求大神指导

基本思想是:获取鼠标的位置,判断是否在rect范围内,或者是四角边界,当触发对应条件时,将鼠标style修改就行追问

对这步我做到了。现在需要比方说东西双向箭头的时候,如何移动那条边来改变rect大小呢?

追答

首先这个MFC没有封装现成的控件,因此只能手动写代码实现
建议你查一下CRectTracker,看看是否符合你的需要,我不太确定
如果不行的话只能是自己写了,总之是比较麻烦的

我觉得自己写的话 主要方法就是重载鼠标点击、拖动和抬起三个函数
Down、move和Up
在Down里获取当前鼠标位置、矩形大小位置等等信息
重点在Move里:不停获取鼠标位置,重新获取当前rect位置大小
up:利用当前的rect位置大小重绘

基本思路应该是这样,但是具体实现楼主得自己琢磨了

参考技术A 获取鼠标的位置,判断是否在rect范围内,或者是四角边界

以上是关于mfc 如何添加光标的主要内容,如果未能解决你的问题,请参考以下文章

MFC编程的时候,改变鼠标光标样式

如何围绕当前光标在MFC中的位置绘制一个矩形

MFC 改变光标形状

MFC GUI自定义控件:如何绘制光标更新以响应鼠标移动?

MFC中修改光标形状

MFC如何让鼠标移动到按钮上马上改变鼠标形状为手型