也是花了一天时间才搞定的。
背景: 新建了一个基于对话框的MFC程序,在主对话框中添加tabcontrol控件,又新建了两个Dialog(CDialog1和CDialog2),将它们设为tabcontrol控件的子对话框。
目的: 两个子对话框之间传递消息,子对话框与主对话框传递消息。
方法: 第一步: 定义消息.
在目标窗口类的头文件或者stdafx.h中添加: #define WM_MY_MESSAGE (WM_USER+100); 推荐用户自定义消息至少是WM_USER+100,因为很多新控件也要使用WM_USER消息。
第二步: 在目标类头文件的AFX_MSG块中说明消息处理函数: afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);
class CDialog1:public CDialog
{
...
// 一般消息映射函数
protected:
// {
{AFX_MSG(CDialog)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();