MFC实现九宫格简易计算器

本文介绍了如何使用MFC创建一个基于对话框的九宫格计算器。通过编辑资源文件,设置按钮ID,并为每个按钮添加事件处理程序,实现了数字0-9、小数点、加减乘除及清零功能。
摘要由CSDN通过智能技术生成

MFC实现九宫格简易计算器


今天没事就做了一个简单的计算器,大家可以看一下,我是用vs2019做的,其他版本应该也大同小异

先选择MFC应用
在这里插入图片描述
项目名称我写Calc
应用程序类型选择基于对话框,取消"关于",其他默认

在"解决方案资源管理器"里找到 资源文件/Calc.rc 文件,双击进入,找到Dialog,找到IDD开头的文件双击编辑,界面做成下图的样子

在这里插入图片描述
将按钮0~9的ID分别命名为:

IDC_BUTTON0
IDC_BUTTON1
IDC_BUTTON2
IDC_BUTTON3
IDC_BUTTON4
IDC_BUTTON5
IDC_BUTTON6
IDC_BUTTON7
IDC_BUTTON8
IDC_BUTTON9

"."命名为: IDC_BUTTONDot
"+"命名为: IDC_BUTTONAdd
"-"命名为: IDC_BUTTONSub
"×"命名为: IDC_BUTTONMult
"÷"命名为: IDC_BUTTONDiv
"="命名为: IDC_BUTTONEqual
"C"命名为: IDC_BUTTONClear

如下图所示命名
在这里插入图片描述
点击"示例编辑框",右键,选择类向导,点击成员变量
在这里插入图片描述
点击右边的"添加自定义",变量类型为double,名称为m_display
在这里插入图片描述
点击"确定"

打开 CalcDlg.cpp
添加以下变量

int count;  //计数
BOOL dot_flg; //小数点标志
BOOL continue_flg;//没按运算符,是否一直连续按数字按钮标志
BOOL str_flag;//有没按运算符标志
BOOL downDot;//小数点
CString str;//记录当前按的运算符
double result; //num1和num2运算的结果
double num1;
double num2; //按运算符之前的第一个数
double CCalcDlg::buttonDownNum(int numSize)
{
   
    if (!str_flag) //运算符没有被按下,那就是num1
    {
   
        if (!continue_flg) //按下一次
        {
   
            num1 = numSize;
            continue_flg = TRUE;
        }
        else
        {
   
            num1 = num1 * pow(10, count) + numSize;
            if (downDot)
            {
   
                num1 = num1 / (pow(10, count));
                count++;
            }
        }
        return num1;
    }
    else  //有运算符被按下
    {
   
        if (!continue_flg) //是否连续按下
        {
   
            num2 = numSize;
            continue_flg = TRUE;
        }
        else
        {
   
            num2 = num2 * pow(10, count) + numSize;
            
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值