问题描述
- MFC中关于消息映射函数定义的问题
-
MFC中有那么多的消息,每个消息都要定义一个消息映射函数么?能不能简化到一个函数中定义,消息函数和普通函数的区别是什么?
解决方案
http://blog.csdn.net/ocean2006/article/details/5498265
解决方案二:
消息映射的作用就是告诉系统我们关心哪一些消息,当这样的消息产生时就调用我们自己写的的消息响应函数,比如下面的消息映射:
BEGIN_MESSAGE_MAP(MessageMapDlg, CDialogEx)
ON_BN_CLICKED(IDC_BTN_1, OnBnClicked_Hello)
ON_BN_CLICKED(IDC_BTN_2, OnBnClicked_Hello)
END_MESSAGE_MAP()
我们自己的消息响应函数:
void MessageMapDlg::OnBnClicked_Hello()
{
// TODO: 在此添加控件通知处理程序代码
MessageBox(_T("Hello!"));
}
当我们点击按钮1(IDC_BTN_1)或者按钮2(IDC_BTN_2)时就会发送_BN_CLICKED消息,而这个消息正是我们通过消息映射ON_BN_CLICKED告诉系统我们关心的也是这个消息,系统检测到这个消息后就会调用我们的OnBnClicked_Hello函数,从而弹出一个消息框显示“Hello!”。
消息响应函数(OnBnClicked_Hello)和普通函数没有什么区别,前者是产生特定消息后被执行的函数,后者是我们想调用的时候自己调用的。
解决方案三:
MFC 关于回调函数定义问题
时间: 2024-11-18 01:43:56