消息处理流程
MFC消息分类
各个消息处理函数均应以afx_msg void 为函数型式。
标准Windows 消息
//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(); }命令消息
//资源文件,这里是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 消息
//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() { ... }