void CCalcDlg::OnCalc()
{
CString szFirstOpt, szSecOpt, szSymbo, szResult;
CComboBox *pSymbo = (CComboBox*)GetDlgItem(IDC_SYMBO);
pSymbo->GetWindowText(szSymbo); //获取运算符
if (!szSymbo.IsEmpty())
{
CEdit *pFirstOpt = (CEdit*)GetDlgItem(IDC_FIRSTOPT); //根据编辑框ID获取编辑框指针
pFirstOpt->GetWindowText(szFirstOpt); //获取编辑框控件文本
CEdit *pSecOpt = (CEdit*)GetDlgItem(IDC_SECOPT); //根据编辑框ID获取编辑框指针
pSecOpt->GetWindowText(szSecOpt); //获取编辑框控件文本
double dbFirst = atof(szFirstOpt.GetBuffer(0));
szFirstOpt.ReleaseBuffer(0); //释放缓冲区
double dbSec = atof(szSecOpt.GetBuffer(0));
szSecOpt.ReleaseBuffer(0); //释放缓冲区
Symbo opt;
if (szSymbo == "+")
{
opt = PLUS;
}
else if (szSymbo == "-")
{
opt = SUB;
}
else if (szSymbo == "*")
{
opt = MUL;
}
else
{
opt = DIV;
}
CCalc<double> CalcObj;
double dbRet = CalcObj.Calc(dbFirst, dbSec, opt);
//在编辑框中显示结果
CEdit *pResult = (CEdit*)GetDlgItem(IDC_RET); //根据编辑框ID获取编辑框指针
szResult.Format("%-8.2f", dbRet);
pResult->SetWindowText(szResult);
szResult.ReleaseBuffer(0);
}
}