利用Visual Studio(C++)实现简易计算器(二)

简易计算器代码部分的实现

在已创建好的MFC解决方案里打开头文件下的…Dlg.h文件(以下简称.h文件)、源文件下的…Dlg.cpp文件(以下简称.cpp文件)和资源文件下.rc文件里的Dialog\IDD_XXX_DIALOG文件(以下简称DIALOG文件)。

Static Text(静态文本框)

添加静态文本框,单机鼠标右键即可更改属性:
在这里插入图片描述

Edit Control(编辑框)的实现

在DIALOG文件中插入Edit Control,双击进入.cpp文件中的函数部分。进入.h文件中,声明变量字符串变量str(有几个编辑框声明几个),声明两个double类型变量num1和num2,以及字符串变量TempStr(用于存放中间值)。

private:
	CString str;
	CString str1;
	CString str2;
	CString str3;
	CString str4;
	double num1;
	double num2;
	CString TempStr;
	myCalculator_Flag flag; //定义运算符对应的变量

在.cpp文件中添加以下代码,使.h中设置的字符串变量与文本框相关联。

void CmyCalculatorDlg::DoDataExchange(CDataExchange* pDX)
{
   
	CDialogEx::DoDataExchange(pDX);
	DDX_Text(pDX, IDC_EDIT1, str);
	DDX_Text(pDX, IDC_EDIT2, str1);
	DDX_Text(pDX, IDC_EDIT3, str2);
	DDX_Text(pDX, IDC_EDIT4, str3);
	DDX_Text(pDX, IDC_EDIT5, str4);
}

最好每插入一个编辑框就双击编辑框一次,这样做保险一点。

Button(按键)

Back:实现撤销最后一个数字

void CmyCalculatorDlg::OnBnClickedButton1()
{
   
	// TODO: 在此添加控件通知处理程序代码
	UpdateData(TRUE);   //获取所有文本框内的字符串
	if (!str.IsEmpty()) {
   
		str=str.Left(str.GetLength()-1); //字符串长度减1
	}
	UpdateData(FALSE);    //将字符串内容更新到文本框
}

Clear:清除当前输入编辑框中的全部内容。

void CmyCalculatorDlg::OnBnClickedButton2()
{
   
	// TODO: 在此添加控件通知处理程序代码
	UpdateData(TRUE);
	str = L""; //把字符串置空
	num1 = 0.0f;
	num2 = 0.0f;
	UpdateData(FALSE);
}

Clear All:清楚包括历史记录编辑框在内的所有编辑框中的内容。

void CmyCalculatorDlg::OnBnClickedButton3()
{
   
	// TODO: 在此添加控件通知处理程序代码
	UpdateData(TRUE);
	str = L"";
	str1 = L"";
	str2 = L"";
	str3 = L"";
	str4 = L"";
	num1 = 0.0f;
	num2 = 0.0f;
	UpdateData(FALSE);
}

数字部分:(其余类似)

void CmyCalculatorDlg::OnBnClickedButton4()
{
   
	// TODO: 在此添加控件通知处理程序代码
	UpdateData(TRUE);
	str += L"7";
	UpdateData(FALSE);
}

小数点部分:此处要加一个判断,以防止同时存在两个小数点。

void CmyCalculatorDlg::OnBnClickedButton13()
{
   
	// TODO: 在此添加控件通知处理程序代码
	UpdateData(TRUE);
	//如果不存在小数点,则添加一个小数点
	if (-1 == str.Find(L'.')) {
   
		str += L".";
	}
	UpdateData(FALSE);
}

在.h文件中声明两个共有函数:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值