MFC怎么为一幅图片添加鼠标点击事件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC怎么为一幅图片添加鼠标点击事件?相关的知识,希望对你有一定的参考价值。

我试过了 但是我添加的却是整个对话框的鼠标点击事件 我晕

设置图片的ID,不要用默认的ID,然后其属性中勾选通知(Notify)属性,然后就可以添加响应消息了。 参考技术A 图片在MFC中被包装成 CStatic 类。
VS中对CStatic系列的控件均不提供Wizard。
改ID,设置Notify属性为 true;
然后在后面的消息相应栏就看到几个消息的响应了,点击就可以生成其点击事件响应。
新的MFC控件中,向父窗口传递消息都采用了 WM_NOFITY,但是旧的控件都采用的WM_COMMAND消息。
参考技术B 方法1、1楼的方法。
方法2、可以自己写一个Wnd,派生于CWnd,在OnPaint中画图,然后可以映射任何你要映射的消息。
参考技术C 1)可以通过设置图片的ID来添加鼠标点击的事件
2)可以在相应整个对话框的鼠标点击事件中添加判断是否点在图片的矩形区域内。如果判断为真,就响应点击图片的事件

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

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

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

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

以上是关于MFC怎么为一幅图片添加鼠标点击事件?的主要内容,如果未能解决你的问题,请参考以下文章

VC++/MFC中用PostMessage发送鼠标点击事件

MFC 中,按钮和其他(比如:图片框、列表框)控件怎么响应鼠标移动消息?

MFC动态创建的RadioButton点击不能选中,怎么解决

MFC 鼠标事件

js获取鼠标点击事件的相对位置

js获取鼠标点击事件的相对位置