MFC消息映射机制实现

AFX_MSG:ClassWizard和AppWizard在源代码文件中可以写在你的文件中插入特殊格式的注释分隔符标记的地方。

AFX_MSG用于在你的头文件(. h)中标记消息映射相关的ClassWizard条目的开始和结束:

BEGIN_MESSAGE_MAP 是定义:用来说明什么事件发生时,应该执行哪个函数子程序。

BEGIN_MESSAGE_MAP( theClass, baseClass )

参数

theClass

用来指定消息映射所属的类的名字。

baseClass

用来指定theClass的基类的名字。

使用BEGIN_MESSAGE_MAP宏开始你的消息映射的定义。用来说明什么事件发生时,应该执行父对象的哪个子程序。

在你的类的成员函数的实现文件(.CPP)中,使用BEGIN_MESSAGE_MAP宏开始消息映射,然后为每个消息处理函数加入一个入口,最后用END_MESSAGE_MAP宏结束消息映射。

每个消息映射入口的格式如下:

ON_Notification(id, memberFxn)

其中id指定了发送通知的控件的子窗口的ID,而memberFxn指定了处理该通知的父对象中的成员函数名。

父对象的函数原型格式如下:

afx_msg void memberFxn( );

可能的消息映射入口如下:

映射入口

何时向父对象发送消息

ON_BN_CLICKED

用户单击按钮时

ON_BN_DOUBLECLICKED

用户双击按钮时


你可能感兴趣的:(MFC消息映射机制实现)