1、新建PROJECT\MFC(exe)文件
下面就NEXT,然后FINISH就可以啦
2、编辑计算器界面
3、对应按键加入程序(包括0-9,C,=,+-*/)
void CCAL1Dlg::OnNum0()
{
if(append==1)
result=0;
result=result*10+0;
m_edit1=result;
append=0;
UpdateData(FALSE);
}
void CCAL1Dlg::OnNum1()
{
if(append==1)
result=0;
result=result*10+1;
m_edit1=result;
append=0;
UpdateData(FALSE);
}
void CCAL1Dlg::OnNum2()
{
if(append==1)
result=0;
result=result*10+2;
m_edit1=result;
append=0;
UpdateData(FALSE);
}
void CCAL1Dlg::OnNum3()
{
if(append==1)
result=0;
result=result*10+3;
m_edit1=result;
append=0;
UpdateData(FALSE);
}
void CCAL1Dlg::OnNum4()
{
if(append==1)
result=0;
result=result*10+4;
m_edit1=result;
append=0;
UpdateData(FALSE);
}
void CCAL1Dlg::OnNum5()
{
if(append==1)
result=0;
result=result*10+5;
m_edit1=result;
append=0;
UpdateData(FALSE);
}
void CCAL1Dlg::OnNum6()
{
if(append==1)
result=0;
result=result*10+6;
m_edit1=result;
append=0;
UpdateData(FALSE);
}
void CCAL1Dlg::OnNum7()
{
if(append==1)
result=0;
result=result*10+7;
m_edit1=result;
append=0;
UpdateData(FALSE);
}
void CCAL1Dlg::OnNum8()
{
if(append==1)
result=0;
result=result*10+8;
m_edit1=result;
append=0;
UpdateData(FALSE);
}
void CCAL1Dlg::OnNum9()
{
if(append==1)
result=0;
result=result*10+9;
m_edit1=result;
append=0;
UpdateData(FALSE);
}
void CCAL1Dlg::OnC()
{
tempvalue=result=m_edit1=0;
UpdateData(FALSE);
}
void CCAL1Dlg::OnEq()
{
switch(sort)
{
case 1:result=result+tempvalue;break;
case 2:result=tempvalue-result;break;
case 3:result=result*tempvalue;break;
case 4:result=tempvalue/result;break;
}
m_edit1=result;
UpdateData(FALSE);
}
void CCAL1Dlg::OnAdd()
{
sort=1;
tempvalue=result;
m_edit1=0;
append=1;
}
void CCAL1Dlg::OnSub()
{
sort=2;
tempvalue=result;
m_edit1=0;
append=1;
}
void CCAL1Dlg::OnMul()
{
sort=3;
tempvalue=result;
m_edit1=0;
append=1;
}
void CCAL1Dlg::OnDiv()
{
sort=4;
tempvalue=result;
m_edit1=0;
append=1;
}
4、一些全局变量还没有声明和赋初始值
在CAL1Dlg.h头文件中声明变量
double tempvalue;//存储中间变量
double result;//显示结果
int sort;//加减乘除
int append;//判断是否为数字
double m_edit1;
在CAL1Dlg.cpp下面加入对变量的初始化
m_edit1=0;
5、
#include "math.h"
还需要像图片中一样,加入一句话:DDX_Text(pDX, IDC_EDIT1, m_edit1);
这句话的意思,好像是将m_edit1显示在控件IDC_EDIT1里面。pDX应该是个地址指针
这样结果才会显示出来。