1.①创建mfc对话框窗口,对话框中所有控件都delete。
②绘制界面,按键都button,显示区域edit control,计算器名字用static text。
③所有控件ID改成语义化ID(可不改),如数字1 IDC_BUTTON_NUM1,改变caption值(显示)。
④edit control属性中,外观中align text表示显示对齐位置(计算器靠右对齐,选择right),行为中的read only选择true(文本框只用来显示,故只读),最上方的static text标题属性align text选择居中(center)。
⑤在edit control右键添加变量,选择value Cstring,变量名字(如:mmm)。
2.①双击所有控件代码编辑。
②在calculatorDlg.h中添加
//运算符
enum CALCULATOR_FLAG {
FLAG_JIA = 0,
FLAG_JIAN,
FLAG_CHENG,
FLAG_CHU,
};
private:
//输入的2个值
double mNum1;
double mNum2;
//运算符号
CALCULATOR_FLAG mFlag;
没有的话加
void SaveFirstValue(); //保存第一个输入值
void Calculator();//计算
③在calculatorDlg.cpp里添加
Calculator()函数具体如下:
void CcalculatorDlg::Calculator() //注意CcalculatorDlg大小写
{
UpdateData(TRUE);
mNum2 = _wtof(mmm);
double result = 0.0f;
switch (mFlag)
{
case FLAG_JIA: //加
result = mNum1 + mNum2;
break;
case FLAG_JIAN: //减
result = mNum1 - mNum2;
break;
case FLAG_CHENG: //乘
result = mNum1 * mNum2;
break;
case FLAG_CHU: //除
if (mNum2 == 0.0f)
{
result = mNum1;
}
else
{
result = mNum1 / mNum2;
}
break;
default:
break;
}
//如果浮点数其实是个整数,就显示为整数
if (result - int(result) <= 1e-5)
{
mmm.Format(L"%d", (int)result);
}
else
{
mmm.Format(L"%f", result);
}
UpdateData(FALSE);
mNum1 = result;
mNum2 = 0.0f;
}
SaveFirstValue()函数具体如下:
void CcalculatorDlg::SaveFirstValue() //注意CcalculatorDlg大小写
{
UpdateData(TRUE);
mNum1 = _wtof(mmm);
mmm= L"";
UpdateData(FALSE);
}
数字键:
void CcalculatorDlg::OnBnClickedButtonNum0()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE);
mmm += L"0";
UpdateData(FALSE);
} //不同的数字只改变L“0”中0的位置
运算键:
+:
void CcalculatorDlg::OnBnClickedButtonNumjia()
{
// TODO: 在此添加控件通知处理程序代码
SaveFirstValue();
mFlag = FLAG_JIA;
}
-:
void CcalculatorDlg::OnBnClickedButtonNumjian()
{
// TODO: 在此添加控件通知处理程序代码
SaveFirstValue();
mFlag = FLAG_JIAN;
}
*:
void CcalculatorDlg::OnBnClickedButtonNumcheng()
{
// TODO: 在此添加控件通知处理程序代码