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里面怎样做到鼠标指到按钮上变成手型的主要内容,如果未能解决你的问题,请参考以下文章