MFC之消息映射机制

上次简单的认识了一下MFC初始化过程。这次来认识一下MFC中的消息映射机制。


MFC对话框程序的消息处理(消息映射机制)
1.为一个对话框模板建立一个与之关联的CDialog或CDialogEx派生类
2.在需要启动对话框用派生类定义一个对象,在用对象调用DoModal成员函数
3.在消息列表中就可以选择你需要的消息,双击即可建立消息映射函数
4.在消息映射函数就是:一消息(和一窗口)对应一函数的地址。通过类向导创建。


在MFC中不必再像Win32程序中那样为每个窗口编写消息处理函数。MFC内部封装了处理函数。


下面通过做一个完整的登录对话框来说明MFC消息映射机制。


第一步:创建一个登录对话框,并添加控件,将密码输入的控件的passwd属性置为true。在InitInstance()函数中找到消息映射。

系统默认缺省的消息映射函数:

OnBnClickedOk()对应IDOK

OnBnClickedCancel对应IDCANCEL

OnInitDialog():对话框初始化函数






第二步:双击确认按钮,在生成的函数中添加代码。


void CMFCLoginDlg::OnBnClickedOk()
{
	CString user, passwd;
	GetDlgItemText(IDC_USER, user);
	GetDlgItemText(IDC_PASSWD, passwd);
	if (user == "Bangsong" && passwd == "123")
		CDialogEx::OnOK();
	else
	{
		AfxMessageBox(L"账号或密码错误!");
	}
}

第三步:在InitInstance函数中代码改为如下。其中为了更好的显示登录的效果,另外的添加一个对话框作为主窗口。


BOOL CMFCLoginApp::InitInstance()
{

	CMFCLoginDlg dlg;
	if (dlg.DoModal() == IDCANCEL)
		return FALSE;
	CMainDlg maindlg;
	maindlg.DoModal();
	return FALSE;
}


第四步:编译运行,查看效果。

输入账号密码之后点确认,账号密码正确则弹出主对话框。

若账号密码错误,则弹出提示,并且不弹出主对话框。






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值