MFC自定义消息及其挂载学习笔记
- 在formview类型的对话框中添加一个按钮
- 添加一个对话框,样式:下层,边框:无
- 自定义消息及其挂载
定义消息:在主对话框的.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");
}
- 预览效果