一、消息映射机制
1.作用
在不重写 WindowProc 虚函数的大前提下,仍然可以处理消息。
2.使用方法
(1).类内必须声明宏
DECLARE_MESSAGE_MAP() //声明消息映射宏
(2).类外必须实现宏
BEGIN_MESSAGE_MAP(自定义类名, 继承的父类名) //开始消息映射宏
ON_MESSAGE(消息ID, 消息处理函数) //中间添加各种消息宏
......
END_MESSAGE_MAP() //结束消息映射宏
总结:当一个类具备上述两个要件,这个类就可以按照消息映射机制来处理消息。
二、宏展开代码
#include<afxwin.h>
class CMyFrameWnd : public CFrameWnd
{
//DECLARE_MESSAGE_MAP() //声明消息映射宏展开
protected:
static const AFX_MSGMAP* PASCAL GetThisMessageMap();
virtual const AFX_MSGMAP* GetMessageMap() const;
public:
LRESULT OnCreate(WPARAM wParam, LPARAM lParam)
{
AfxMessageBox("WM_CREATE");
return 0;
}
};
//BEGIN_MESSAGE_MAP(CMyFrameWnd, CFrameWnd) //开始消息映射宏展开
//PTM_WARNING_DISABLE //使用宏时,
MFC消息映射
最新推荐文章于 2023-09-01 11:26:50 发布
本文详细探讨了MFC(Microsoft Foundation Classes)中的消息映射机制,它是Windows应用程序开发中的关键概念。通过消息映射,开发者可以将窗口消息与特定的成员函数关联起来,实现UI交互的响应。文章涵盖了MFC如何处理WM_PAINT消息以进行窗口绘制,以及如何使用ON_BN_CLICKED宏来响应按钮点击事件。此外,还讨论了消息映射表的结构和声明,以及如何自定义消息映射以增强应用程序的功能。
订阅专栏 解锁全文
1169

被折叠的 条评论
为什么被折叠?



