目录
- 1 前言
- 2 新建MFC项目
- 3 计算器界面设计
- 4 简易计算器代码
- 5 运行效果
- 6 碎碎念
1 前言
MFC版本:零基础做简易计算器 | MFC | Qt5 | C++ | Python | VS2017 | 温故而知新(上)
Qt版本:零基础做简易计算器 | MFC | Qt5 | C++ | Python | VS2017 | 温故而知新(下)
在VS2017中,结合MFC做一个简易计算器。
全过程记录在此文,每一步都很详细。
小声哔哔:因为很简单,所以步骤不多。
适合新手用来熟悉MFC的基本操作。
由于是用来体验和熟悉MFC的操作,故未对计算器的细节过多考虑。
大佬绕道,有错欢迎指出。
注:Qt版下一篇推文详细记录,和MFC的操作做对比。
源码:后台回复计算器三个字。
2 新建MFC项目
依次点击“文件→新建→项目”。
依次选择“Visual C++→MFC/ATL→MFC应用”。
自定义项目路径和名称。
设置MFC应用程序,选择应用程序类型为“基于对话框”,并点击“完成”。
单文档:记事本类程序的标准模式,有菜单栏、工具栏等,只能进行一份文档的操作,即不能同时在同一个应用程序中打开两个文件。
多文档:WORD类或浏览器程序的标准模式,可多个窗口显示不同的信息,进行不同的任务,有多个视图环境,可同时操作多个文件。多个文件共享同一菜单栏、工具栏等。
对话框:可方便的使用控件,所见即所得的编程,没有菜单栏、工具栏等。
3 计算器界面设计
依次点击“资源视图→Dialog”,唤出界面,如下图所示:
简易计算器界面设计如下图:
6个控件,共4类。
3个Edit Control,其中Combo-box Control、Text Control和Button Control各一个。
MFC界面如下:
MFC相关设置如下。
①Edit Control
从左到右依次设置ID为:IDC_EDIT1_numLeft、IDC_EDIT2_numRight、IDC_EDIT3_numResult。
右击控件,点击“添加变量”,如下:
numLeft:第一个操作数(ID:IDC_EDIT1_numLeft)的变量设置如下:
numRight:第二个操作数(ID:IDC_EDIT2_numRight)的变量设置如下:
numResult:第三个操作数(ID:IDC_EDIT3_numResult)的变量设置如下:
②Combo-box Control
ID设置为:IDC_COMBO1_Cacu
Data设置为:+;-;*;/;
m_operation:右击控件(ID:IDC_COMBO1_Cacu),添加变量,设置如下:
myComboBox:右击控件(ID:IDC_COMBO1_Cacu),添加变量,设置如下:
③Static Text Control
Caption设置为:=
④Button Control
Caption设置为:计算
ID设置为:IDC_BUTTON1_Cacu
为控件添加的变量,可在对应的源程序中看到。
注:善用“Ctrl+F”,查看源程序。
4 简易计算器代码
双击“计算”按钮(ID:IDC_BUTTON1_Cacu),进入代码编写。
代码如下:
//源码:后台回复【计算器】三个字
void CMFCCaculatorDlg::OnBnClickedButton1Cacu()
{
// TODO: 在此添加控件通知处理程序代码int curSEL = myComboBox.GetCurSel();switch (curSEL) {
case 0:UpdateData(TRUE);numResult = numLeft - numRight;UpdateData(FALSE);break;case 1:UpdateData(TRUE);numResult = numLeft * numRight;UpdateData(FALSE);break;case 2:UpdateData(TRUE);if (numRight == 0)//AfxMessageBox("除数不能为零");//报错MessageBox(_T("除数不能为零"));elsenumResult = numLeft / numRight;UpdateData(FALSE);break;case 3:UpdateData(TRUE);numResult = numLeft + numRight;UpdateData(FALSE);break;default:printf("您的操作不合法");break;}
}
5 运行效果
除数为0,弹出消息提示,如下:
简易计算演示
6 碎碎念
这篇是下午临时起意,简单记录的。
因为导师又提到了熟悉基本操作的事。
本意是用Qt编一个计算器,练手。
先复习一下MFC的,故整理如上。
好久不见,你好呐。
我去学习啦~
戳下方,留言讨论~