消息处理流程

MFC消息分类
各个消息处理函数均应以afx_msg void 为函数型式。
标准Windows 消息

cpp
//the_class.H
class the_class: public base_class
{
public:
...
afx_msg void OnPaint();//消息处理函数声明
DECLARE_MESSAGE_MAP()//消息映射声明
};
//the_class.CPP
//消息映射
BEGIN_MESSAGE_MAP(the_class, base_class) //消息入口
ON_WM_PAINT()
END_MESSAGE_MAP()
//消息处理函数定义
void the_class::OnPaint()
{
...
base_class::OnPaint();
}
命令消息

cpp
//资源文件,这里是afxres.h
#define ID_FILE_PRINT 0xE107 //分配资源ID
//the_class.H,这里是afxwin.h
class the_class: public base_class
{
public:
...
afx_msg void OnFilePrint();;//消息处理函数声明
DECLARE_MESSAGE_MAP()//消息映射声明
};
//the_class.CPP
//消息映射
BEGIN_MESSAGE_MAP(the_class, base_class)
ON_COMMAND(ID_FILE_PRINT, &the_class::OnFilePrint)//消息入口
END_MESSAGE_MAP()
//消息处理函数定义
void the_class::OnFilePrint()
{
...
}
Notification 消息

cpp
//Resource.h
#define IDC_BUTTON1 1001 //分配资源ID
//the_class.H
class the_class: public base_class
{
public:
...
afx_msg void OnBnClickedButton1();//消息处理函数声明
DECLARE_MESSAGE_MAP()//消息映射声明
};
//the_class.CPP
//消息映射
BEGIN_MESSAGE_MAP(the_class, base_class)
ON_BN_CLICKED(IDC_BUTTON1, &the_class::OnBnClickedButton1) //消息入口
END_MESSAGE_MAP()
//消息处理函数定义
void the_class::OnBnClickedButton1()
{
...
}
MessageMap




消息路由




WM_PAINT

WM_COMMAND 命令消息









AFX_MSGMAP_ENTRY


其他
UpdateAllViews同时修改多个View

cpp
virtual void UpdateAllViews(CView* pSender,LPARAM lHint,CObject* pHint);


cpp
virtual void OnUpdate(CView* pSender,LPARAM lHint,CObject* pHint);

