在对话框头文件中声明如下变量:
CEdit m_ret;
CString num1; //数值计算符号前面的数值
CString num2; //数值计算后面的数值
BOOL isresult; //是否按下加、减、乘、除符号
int witch; //是加、减、乘、除哪种计算
在对话框初始化代码中定义变量初始值,如下:
BOOL CTest1::OnInitDialog()
{
CDialog::OnInitDialog();
num1=""; //第一个数据
num2=""; //第二个数据
isresult=FALSE; //保存是否点击了运算按钮
witch=0; //保存运算按钮
m_result=""; //清空操作
SetIcon(m_Icon, TRUE); // 设置大图标
SetIcon(m_Icon, FALSE); // 设置小图标
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
具体代码实现如下:
效果如下:
void CTest1::OnBnClickedButton1()
{
// CString st1;
// CString ret;
// UpdateData(true);
// GetDlgItemText(IDC_BUTTON_1,st1);
// //MessageBox(st1);
// ret=st1;
// //ret.Format("%s",st1);
// SetDlgItemText(IDC_EDIT_RET,ret);
// //m_ret.SetWindowText(ret);
// //MessageBox(ret);
if(isresult==FALSE)
{
num1+="1";
m_result=num1;
// MessageBox(m_result,NULL,0);
UpdateData(false);
}
if(isresult==TRUE)
{
m_result="";
num2="";
num2+="1";
m_result=num2;
// AfxMessageBox(m_result);
// AfxMessageBox(num2);
UpdateData(false);
}
}
void CTest1::OnBnClickedButton2()
{
if(isresult==FALSE)
{
num1+="2";
m_result=num1;
UpdateData(false);
}
if(isresult==TRUE)
{
m_result="";
num2="";
num2+="2";
m_result=num2;
UpdateData(false);
}
}
void CTest1::OnBnClickedButton3()
{
if(isresult==FALSE)
{
num1+="3";
m_result=num1;
UpdateData(false);
}
if(isresult==TRUE)
{
m_result="";
num2="";
num2+="3";
m_result=num2;
UpdateData(false);
}
}
void CTest1::OnBnClickedButton4()
{
if(isresult==FALSE)
{
num1+="4";
m_result=num1;
UpdateData(false);
}
if(isresult==TRUE)
{
m_result="";
num2="";
num2+="4";
m_result=num2;
UpdateData(false);
}
}
void CTest1::OnBnClickedButton5()
{
if(isresult==FALSE)
{
num1+="5";
m_result=num1;
UpdateData(false);
}
if(isresult==TRUE)
{
m_result="";
num2="";
num2+="5";
m_result=num2;
UpdateData(false);
}
}
void CTest1::OnBnClickedButton6()
{
if(isresult==FALSE)
{
num1+="6";
m_result=num1;
UpdateData(false);
}
if(isresult==TRUE)
{
m_result="";
num2="";
num2+="6";
m_result=num2;
UpdateData(false);
}
}
void CTest1::OnBnClickedButton8()
{
if(isresult==FALSE)
{
num1+="7";
m_result=num1;
UpdateData(false);
}
if(isresult==TRUE)
{
m_result="";
num2="";
num2+="7";
m_result=num2;
UpdateData(false);
}
}
void CTest1::OnBnClickedButton10()
{
if(isresult==FALSE)
{
num1+="8";
m_result=num1;
UpdateData(false);
}
if(isresult==TRUE)
{
m_result="";
num2="";
num2+="8";
m_result=num2;
UpdateData(false);
}
}
void CTest1::OnBnClickedButton7()
{
if(isresult==FALSE)
{
num1+="9";
m_result=num1;
UpdateData(false);
}
if(isresult==TRUE)
{
m_result="";
num2="";
num2+="9";
m_result=num2;
UpdateData(false);
}
}
void CTest1::OnBnClickedButton14()
{
if(isresult==FALSE)
{
num1+="0";
m_result=num1;
UpdateData(false);
}
if(isresult==TRUE)
{
m_result="";
num2="";
num2+="0";
m_result=num2;
UpdateData(false);
}
}
void CTest1::OnBnClickedButton15()
{
if(isresult==FALSE)
{
num1+=".";
m_result=num1;
UpdateData(false);
}
if(isresult==TRUE)
{
m_result="";
num2="";
num2+=".";
m_result=num2;
UpdateData(false);
}
}
void CTest1::OnBnClickedButton9()
{
isresult=TRUE;
witch=1;
}
void CTest1::OnBnClickedButton11()
{
isresult=TRUE;
witch=2;
}
void CTest1::OnBnClickedButton12()
{
isresult=TRUE;
witch=3;
}
void CTest1::OnBnClickedButton13()
{
isresult=TRUE;
witch=4;
}
void CTest1::OnBnClickedButton16()
{
double number1=atof(num1);
double number2=atof(num2);
//AfxMessageBox(num1); //此时,该值为空?
//AfxMessageBox(num2);
double result=0.0;
switch(witch)
{
case 1:result=number1+number2;break;
case 2:result=number1-number2;break;
case 3:result=number1*number2;break;
case 4:result=number1/number2;break;
default:AfxMessageBox("程序运行错误");break;
}
m_result.Format("%f",result);
UpdateData(false);
}
void CTest1::OnBnClickedButton17()
{
m_result="0";
UpdateData(false);
SetDlgItemText(IDC_EDIT_RET,m_result);
//num1="";
num2=""; //将num1值赋值为空
m_result="0";
}