vs2008 mfc基于对话框的简单计算器
加减乘除在下拉列表中,等于(button)按钮。的程序,,,,急求解,给个文件。863637209@...
加减乘除在下拉列表中,等于(button)按钮。的程序,,,,急求解,给个文件。863637209@
展开
2个回答
展开全部
楼主你好!
这个程序要求不高,非常简单,我已经为你做了一个,请自行建一个MFC工程,将下面代码贴在对应位置即可编译运行:
第一步:
新建基于对话框的MFC程序,工程名 JiSuanQi
第二步:
在stdafx.h中,添加:
#include <stdlib.h>
#include <comdef.h>
#define DF_JIA WM_USER + 1001
#define DF_JIAN WM_USER + 1002
#define DF_CHENG WM_USER + 1003
#define DF_CHU WM_USER + 1004
第三步:
在JiSuanQi.h中的对话框类中,添加:
private:
float GetResult(float fData_01, float fData_02, LONG nFlag);
private:
CString m_strData_01,
m_strData_02,
m_strResult;
第四步:
在JiSuanQi.cpp中,添加:
float CJiSuanQiDlg::GetResult(float fData_01, float fData_02, LONG nFlag)
{
switch (nFlag)
{
case DF_JIA:
return (float)(fData_01 + fData_02);
break;
case DF_JIAN:
return (float)(fData_01 - fData_02);
break;
case DF_CHENG:
return (float)(fData_01 * fData_02);
break;
case DF_CHU:
return (float)(fData_01 / fData_02);
break;
}
return -(float)1;
}
第五步:(最后一步),在按钮事件函数中比如void CJiSuanQiDlg::OnBnClckedOk()
void CJiSuanQiDlg::OnBnClickedOk()
{
CString strTurn = _T("");
LONG nFlag = NULL;
GetDlgItemText(IDC_EDIT1, m_strData_01);
GetDlgItemText(IDC_EDIT2, m_strData_02);
GetDlgItemText(IDC_COMBO1, strTurn);
if (strTurn == _T("+"))
nFlag = DF_JIA;
if (strTurn == _T("-"))
nFlag = DF_JIAN;
if (strTurn == _T("×"))
nFlag = DF_CHENG;
if (strTurn == _T("÷"))
nFlag = DF_CHU;
m_strResult.Format(
_T("%f"),
this->GetResult(atof((_bstr_t)m_strData_01), atof((_bstr_t)m_strData_02), nFlag)
);
SetDlgItemText(IDC_EDIT3, m_strResult);
//OnOK();
}
这样,你就可以尝试编译运行了,祝你成功!
希望能为你带来帮助,谢谢!
这个程序要求不高,非常简单,我已经为你做了一个,请自行建一个MFC工程,将下面代码贴在对应位置即可编译运行:
第一步:
新建基于对话框的MFC程序,工程名 JiSuanQi
第二步:
在stdafx.h中,添加:
#include <stdlib.h>
#include <comdef.h>
#define DF_JIA WM_USER + 1001
#define DF_JIAN WM_USER + 1002
#define DF_CHENG WM_USER + 1003
#define DF_CHU WM_USER + 1004
第三步:
在JiSuanQi.h中的对话框类中,添加:
private:
float GetResult(float fData_01, float fData_02, LONG nFlag);
private:
CString m_strData_01,
m_strData_02,
m_strResult;
第四步:
在JiSuanQi.cpp中,添加:
float CJiSuanQiDlg::GetResult(float fData_01, float fData_02, LONG nFlag)
{
switch (nFlag)
{
case DF_JIA:
return (float)(fData_01 + fData_02);
break;
case DF_JIAN:
return (float)(fData_01 - fData_02);
break;
case DF_CHENG:
return (float)(fData_01 * fData_02);
break;
case DF_CHU:
return (float)(fData_01 / fData_02);
break;
}
return -(float)1;
}
第五步:(最后一步),在按钮事件函数中比如void CJiSuanQiDlg::OnBnClckedOk()
void CJiSuanQiDlg::OnBnClickedOk()
{
CString strTurn = _T("");
LONG nFlag = NULL;
GetDlgItemText(IDC_EDIT1, m_strData_01);
GetDlgItemText(IDC_EDIT2, m_strData_02);
GetDlgItemText(IDC_COMBO1, strTurn);
if (strTurn == _T("+"))
nFlag = DF_JIA;
if (strTurn == _T("-"))
nFlag = DF_JIAN;
if (strTurn == _T("×"))
nFlag = DF_CHENG;
if (strTurn == _T("÷"))
nFlag = DF_CHU;
m_strResult.Format(
_T("%f"),
this->GetResult(atof((_bstr_t)m_strData_01), atof((_bstr_t)m_strData_02), nFlag)
);
SetDlgItemText(IDC_EDIT3, m_strResult);
//OnOK();
}
这样,你就可以尝试编译运行了,祝你成功!
希望能为你带来帮助,谢谢!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询