当前位置: 代码迷 >> 综合 >> 零基础做简易计算器超详细步骤 | MFC | Qt5 | C++ | Python | VS2017 | 温故而知新(上)
  详细解决方案

零基础做简易计算器超详细步骤 | MFC | Qt5 | C++ | Python | VS2017 | 温故而知新(上)

热度:75   发布时间:2023-11-24 17:22:30.0

目录

  • 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的,故整理如上。

好久不见,你好呐。

我去学习啦~

戳下方,留言讨论~
在这里插入图片描述

在这里插入图片描述