一个关于MFC消息映射机制的简单问题

类的定义中:
//{{AFX_MSG(CTestDlg)
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
//}}AFX_MSG
类的实现中:
BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
//{{AFX_MSG_MAP(CTestDlg)
ON_WM_LBUTTONDOWN()
ON_WM_RBUTTONDOWN()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
我想知道WM_LBUTTONDOWN消息是怎么和OnLButtonDown函数对应上的?WM_LBUTTONDOWN为什么不对应OnRButtonDown函数呢?

ON_WM_LBUTTONDOWN() 是鼠标“左键”揿下 的事件。小括号里没参数。
MFC规定,对应函数就是:
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);

WM_LBUTTONDOWN为什么不对应OnRButtonDown函数呢?
因为 左键 对应 左键函数,不对应 右键函数。
L -- left 左
R -- right 右

ON_WM_RBUTTONDOWN() 是鼠标“右键”揿下 的事件。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-10-27
BEGIN_MESSAGE_MAP(CTestDlg, CDialog)。。。这是一个宏,找到它的定义你就明白了。

MFC 消息映射原理是什么?
通俗点讲,消息映射表就是一个记录了消息号和相应处理函数的数组。当然表中还有其他信息,这里先说矛盾的主要方面了。其中消息映射表中的每个元素都是一个结构体变量,他的成员很多,最主要的就是消息号和相对应的消息处理函数。关于消息映射表的查找,是通过虚函数实现的,通过父类的虚函数查找父类及其...

消息映射机制什么是消息映射机制
MFC(Microsoft Foundation Classes)采用了一种高效的消息映射机制,这一机制的核心在于构建一个消息与处理函数之间的映射表。这个表在应用程序框架中扮演着至关重要的角色,它包含了预定义的消息类型和对应的处理函数声明与实现代码。每当窗口接收到一个消息,它会自动在消息映射表中查找匹配的消息,然后调用...

VC++关于MFC中消息映射的例子用ON_WM_LBUTTONDOWN时出错,代码如下_百度...
afx_msg void OnLButtonDown();需要改为 afx_msg void OnLButtonDown(UINT nFlags, CPoint point);这样函数的声明和实现都一致方可通过编译。另外,cpp文件中的 this->都可以省略掉,1可以节省敲代码的时间,2是可以缩小代码行的长度,方便查看代码。查看ON_WM_LBUTTONDOWN的宏定义也可知道函数的正确声...

MFC消息和事件的理解?举个通俗易懂的例子说明
1:windows OS事件驱动策略基于3种消息。标准消息、通告消息、命令消息。2:“事件”就是“消息”,事件是有形形象的,是站在人类能理解的角度来定义的。消息是无形抽象的,是站在OS能理解的角度来定义的。3:我把按下鼠标左键这一事件转换成WM_LBUTOONDOWN消息来告诉OS我做了按下鼠标左键这件事情。

MFC的问题,消息映射的步骤我是按部就班来的啊,出现这种错误是为什么...
检查红圈图片所在cpp文件,是否包含了:include "Tryfirstdlg.h"如果没有,加上。

MFC中消息映射函数和普通成员函数有什么区别
我认为最大的一个区别就是消息映射函数不是由你调用,而是当消息被触发时由MFC框架进行调用的,普通的成员函数则肯定是由你自己来调用啦。譬如你为鼠标左键映射了一个消息函数,那么当鼠标左键消息触发时,你肯定不用理会响应函数啦,系统会帮你调用该函数。有道理的话,请采纳。

什么是消息映射
问题五:MFC的消息映射有什么作用 消息映射简单来说 就是一张表, 上面有两列,一列是 “消息”名称,另一列是 “处理函数”名字。 它的作用是,当 甲事件发生,消息甲 到达,查映射表,找出 消息甲 对应的 处理函数, 调用 此 处理函数处理。 其它 事件发生,有相应消息到达,查映射表,找出处理函数,处理。

为什么我在MFC中的消息映射符号说我写错了,好像没有啊
没有ON_MESSAGE的消息的,消息分为标准的Windows消息(响应函数由IDE默认)定义响应函数格式为:ON_WM_XXX,COMMAD消息(一般的菜单,工具栏的)定义函数为ON_COMMADN(IDX_XXX,func),还有通知消息(控件之类的,如按钮)ON_BN_CLICKED(IDX_XXX,func),一般就这三类,没听说过其他的 ...

MFC AfxMessageBox() 简单问题 新手
VC8之后的版本创建的工程默认使用UNICODE字符串,带有_T()宏处理的字符串在编译时可以自动转换,不带这个宏的字符串是按照单字节处理,造成无法适配函数的参数。

java如何实现类似MFC中的消息映射机制
机制不同的。1、问: 什么是 Java 消息服务?答: Java 消息服务(Java Message Service,JMS) API 是一个用于访问企业消息传递系统的 API。是 Java 2 Platform, Enterprise(J2EE)的一部分。2、目前流行的消息传送产品有哪些?答:目前流行的有ActiveMQ、IBM WebSphere MQ、SonicMQ等 3、什么时候可以...

相似回答
大家正在搜