VC里面怎样做到鼠标指到按钮上变成手型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC里面怎样做到鼠标指到按钮上变成手型相关的知识,希望对你有一定的参考价值。

如题。

两种方法:
1、派生一个cbutton类,然后重载onsetcursor函数,在里面
使用setcursor函数设置鼠标指针。
然后删除
return
cbutton::onsetcursor(pwnd,
nhittest,
message);
改成
return
true;
例如:
bool
cmybutton::onsetcursor(cwnd*
pwnd,
uint
nhittest,
uint
message)

::setcursor(::loadcursor(null,
makeintresource(idc_hand)));
return
true;

2、直接在程序里,响应wm_mousemove消息,在里面判断鼠标指针是否指到了按钮上,是的话就用setcursor函数设置鼠标指针,离开再设回以前的指针
参考技术A 我也不同意建立新类
首先建立一个RECT区域,并且用LoadCursor得到你需要的鼠标形状(这个rect就是你按纽的区域)
然后在响应ON_MOUSEMOVE时,符合鼠标移动到rect区域内时,使用SetCursor改变你在此区域内的鼠标形状
最后返回刷新指定区域的消息
参考技术B 建立一个新类MyCButton,基类是CButton

添加响应鼠标移动的消息OnMouseMove(UINT nFlags, CPoint point) ,用SetCursor();设置鼠标

将添加一个MyCButton的按钮本回答被提问者采纳
参考技术C 同意上楼的意见,但好的不是OnMouseMove(UINT nFlags, CPoint point) 而是afx_msg BOOL OnSetCursor( CWnd* pWnd, UINT nHitTest, UINT message );本人已试过了 参考技术D 为啥要建一个新类
直接用SetCursor(::LoadCursor(NULL, IDC_APPSTARTING));

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

MFC如何让鼠标移动到按钮上马上改变鼠标形状为手型,
这个不知道怎么弄,有没有详细的操作和代码?,谢谢

当鼠标移到按钮上时候,加载所需光标资源,函数如下:

::SetCursor(::LoadCursor(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDC_Hand)));
其中IDC_Hand为鼠标光标资源ID,鼠标形状为手型的文件可以在网上查找,找到后放在res文件夹里面,然后加载到工程里面,把他的ID改为IDC_Hand即可.
参考技术A 具体是什么不太清楚不过你可以通过多种途径得到。包括:1.自己在消息循环里面下断点,看进来的消息类型(这个可能会很麻烦。。)2.用spy++试试。。。

以上是关于VC里面怎样做到鼠标指到按钮上变成手型的主要内容,如果未能解决你的问题,请参考以下文章

为啥鼠标可以变成小手形呢?

怎么让鼠标变成"手"的形状

css鼠标放上去把箭头变成手一样的样式怎么写

高分急求:VC中鼠标移到按钮上后,更改按钮图片的实现代码

cursor(鼠标手型)属性

当鼠标放在按钮上时让指针变为手型