//【任务2 拓展(选做)】将上面的输入运算符的编辑框换为下拉列表框,使之只能选“+‐*/”
void CmfcCFractionDlg::OnCbnCloseupCombo1()
{
// TODO: 在此添加控件通知处理程序代码
static BOOL flag = true;
if(flag){
flag = false;
m_combobox.AddString(_T("+"));
m_combobox.AddString(_T("-"));
m_combobox.AddString(_T("*"));
m_combobox.AddString(_T("/"));
}
if(m_combobox.GetCurSel() != CB_ERR)//如果没有选择返回CB_ERR
nIndex = m_combobox.GetCurSel();
else
nIndex = 0;
//m_combobox.GetLBText(nIndex, sign);//将选择的运算符进行储存
m_combobox.SetCurSel(nIndex);//显示选择的运算符
}
//添加等号点击事件
void CmfcCFractionDlg::OnBnClickedButton1()
{
CString str = _T("运算符输入有误!");
int n1, d1, n2, d2, n, d;
// TODO: 在此添加控件通知处理程序代码
UpdateData();
n1 = _wtoi(m_n1.GetBuffer());
d1 = _wtoi(m_d1.GetBuffer());
n2 = _wtoi(m_n2.GetBuffer());
d2 = _wtoi(m_d2.GetBuffer());
CFraction cf1(n1, d1), cf2(n2, d2), cf;
switch(nIndex)
{
case 0:
cf = cf1 - cf2;
break;
case 1:
cf = cf1 * cf2;
break;
case 2:
cf = cf1 / cf2;
break;
case 3:
cf = cf1 + cf2;
break;
default :
AfxMessageBox(str);//FMC弹出字符串
return;
}
m_n.Format(_T("%d"), cf.getn());
m_d.Format(_T("%d"), cf.getd());
UpdateData(FALSE);
}
/*
程序运行时还有很多BUG有待完善、、、
*/
《第十五周实验报告2-1》---VS2008 MFC中Combox的使用
最新推荐文章于 2021-01-06 16:19:44 发布