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

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("除数不能为零"));
    else
      numResult = numLeft / numRight;
    UpdateData(FALSE);
    break;
  case 3:
    UpdateData(TRUE);
    numResult = numLeft + numRight;
    UpdateData(FALSE);
    break;
  default:
    printf("您的操作不合法");
    break;
  }
}

5 运行效果

除数为0,弹出消息提示,如下:
在这里插入图片描述
简易计算演示
在这里插入图片描述

6 碎碎念

这篇是下午临时起意,简单记录的。

因为导师又提到了熟悉基本操作的事。

本意是用Qt编一个计算器,练手。

先复习一下MFC的,故整理如上。

好久不见,你好呐。

我去学习啦~

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

在这里插入图片描述

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值