基于MFC的简单计算器

时间:2022-05-12 22:57:12

VS2013一直也没做过什么简单的小插件,小功能,按照鸡啄米的MFC学习教程,先做一个简单的计算器。

MFC其实比较方便了,添加好窗口控件,按钮之类后。

1、每个编辑框添加变量然后会生成数据交换,就是入门之八的一段代码。但是在检验操作DoDataExchange()并不是被自动调用的,而是需要我们在程序中调用CDialogEx::UpdateData()函数,由UpdateData()函数再去自动调用DoDataExchange()的。

       CDialogEx::UpdateData()函数的原型为:

       BOOL UpdateData(BOOL bSaveAndValidate = TRUE);

       参数:bSaveAndValidate用于指示数据传输的方向,TRUE表示从控件传给变量,FALSE表示从变量传给控件。默认值是TRUE,即从控件传给变量。

       返回值:CDialogEx::UpdateData()函数的返回值表示操作是否成功,成功则返回TRUE,否则返回FALSE。

2、使用Class Wizard(类向导)添加消息处理函数。

教程很详细,这里需要改的内容就是:

void CAddtDlg::OnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(true);
m_editSum = m_editSummand + m_editAddend;
UpdateData(false);
}


void CAddtDlg::OnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(true);
if (m_editSummand >= m_editAddend)
{
m_editSum = m_editSummand - m_editAddend;
}
else
{
MessageBox(_T("输入的第一个数小于第二个数!!!"), _T("计算器"));
return;
}
UpdateData(false);
}


void CAddtDlg::OnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(true);
m_editSum = m_editSummand * m_editAddend;
UpdateData(false);
}


void CAddtDlg::OnClickedButton4()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(true);
if (m_editAddend==0)
{
MessageBox(_T("除数不能为零!!!"), _T("计算器"));
return;
}
else
{
m_editSum = m_editSummand / m_editAddend;
}

UpdateData(false);
}
void CAddtDlg::OnClickedButton5()
{
// TODO: 在此添加控件通知处理程序代码
::SendMessage(this->GetSafeHwnd(), WM_CLOSE, NULL, NULL);
}

3、效果图:

基于MFC的简单计算器

4、用RELEASE方式运行。在RELEASE文件夹里找到.EXE文件,把.EXE放在别人电脑上就可以了使用了。

5、计算器进一步完善,加一个说明书按钮;

该按钮设计按照MFC编程入门之十四 然后做出的加法计算器效果图:

基于MFC的简单计算器

基于MFC的简单计算器

6、接着设计按照MFC编程入门之十五 然后做出一般属性页对话框的加法计算器效果图:

基于MFC的简单计算器

 7、接着设计按照MFC编程入门之十六 然后做出消息框的加法计算器效果图: 基于MFC的简单计算器