MFC自定义消息及其挂载学习笔记

  1. 在formview类型的对话框中添加一个按钮
  2. 添加一个对话框,样式:下层,边框:无
  3. 自定义消息及其挂载
    定义消息:在主对话框的.h文件中写入
#define NM_A  (WM_USER + 100)

声明消息响应函数:在.h文件protect下,DECLARE_MESSAGE_MAP()之前写入

 afx_msg LRESULT OnMyChange(WPARAM wParam,LPARAM lParam);
 //}}AFX_MSG
 DECLARE_MESSAGE_MAP()

实现消息响应函数:可以现在空白处声明,创建函数后再将声明拉入上一步所在位置,函数如下:

LRESULT CRuanjian4Dlg::OnMyChange(WPARAM wParam,LPARAM lParam)
{
	return 0;
}

将消息映射到消息处理函数:在主对话框的.c文件BEGIN_MESSAGE_MAP(CRuanjian4Dlg, CDialog)和END_MESSAGE_MAP()中添加:

BEGIN_MESSAGE_MAP(CRuanjian4Dlg, CDialog)
 //{{AFX_MSG_MAP(CRuanjian4Dlg)
 ON_WM_PAINT()
 ON_WM_QUERYDRAGICON()
 ON_WM_CREATE()
 ON_MESSAGE(NM_A,OnMyChange)//我所添加的
 //}}AFX_MSG_MAP
END_MESSAGE_MAP()

发送自定义消息:在另一个对话框的按钮下添加函数:

void CMyFormView2::OnJiBenXinXi() 
{
 // TODO: Add your control notification handler code here 
 ::PostMessage(AfxGetMainWnd()->GetSafeHwnd(),NM_A,(WPARAM)NM_A,(LPARAM)0);
}

接收自定义消息:在消息映射处理函数中添加:

if (wParam==NM_A)
 {
  AfxMessageBox("aaaaaaaaaa");
 }
  1. 预览效果
    MFC自定义消息及其挂载学习笔记