使用MFC制作简单计算器

在文件开头定义了intoper;CStringnum1;CStringnum2;BOOLisresult;以下是加法按钮、等号按钮、1、2按钮的功能voidCCalDlg... 在文件开头定义了
int oper;
CString num1;
CString num2;
BOOL isresult;

以下是加法按钮、等号按钮、1、2按钮的功能
void CCalDlg::OnButtonadd()
{
// TODO: Add your control notification handler code here
isresult=TRUE;
m_edit="";
UpdateData(false);
oper=1;
}
void CCalDlg::OnButtondeng()
{
// TODO: Add your control notification handler code here
double result=0;
double firnum=atof(num1);
double secnum=atof(num2);
switch(oper)
{case 1:result=firnum+secnum;
m_edit.Format("%g",result);
UpdateData(false);
break;}
}
void CCalDlg::OnButton1()
{
// TODO: Add your control notification handler code here
if (isresult=FALSE)
{m_edit=m_edit+"1";
num1=m_edit;
UpdateData(false);}
if (isresult=TRUE)
{m_edit=m_edit+"1";
num2=m_edit;
UpdateData(false);}
}
void CCalDlg::OnButton2()
{
// TODO: Add your control notification handler code here
if (isresult=FALSE)
{m_edit=m_edit+"2";
num1=m_edit;
UpdateData(false);}
if (isresult=TRUE)
{m_edit=m_edit+"2";
num2=m_edit;
UpdateData(false);}
}
在运行的时候,发现他们能正确显示,但等号不起作用(按了等号之后没反应,或者说是还只是显示第二个数字),请教一下是哪里错了?为什么错?要怎么改?谢了!
初始化的时候还定义了isresult=FALSE的
展开
 我来答
bhtzu
2013-05-06 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4069万
展开全部
void CCalDlg::OnButtonadd()
{
    // TODO: Add your control notification handler code here
    UpdateData();
    isresult=TRUE;
    num1 = m_edit;
    m_edit="";
    UpdateData(false);
    oper=1;
}
void CCalDlg::OnButtondeng()
{
    // TODO: Add your control notification handler code here
    UpdateData();
    num2 = m_edit;
    double result=0;
    double firnum=atof(num1);
    double secnum=atof(num2);
    switch(oper)
    {case 1:result=firnum+secnum;
    m_edit.Format("%g",result);
    UpdateData(false);
    break;}
}

在使用m_edit前,要先updatedata更新控件内容到变量。

追问
我在1、2的数字按钮那里有num1=m_edit;num2=m_edit,加了UpdateData();之后却还是无法显示,但是像你这么分别加在加法和等号的按钮里面就能输出了。这是为什么呢?
追答
UpdateData();参数不同,用处相反,你另外两个里面用的也不好。我只改了两个关键的,够用了。

UpdateData(TRUE)
——刷新控件的值到对应的变量。(外部输入值交给内部变量)
即:控件的值—>变量。
UpdateData(FALSE)
—— 拷贝变量值到控件显示。(变量的最终运算结果值交给外部输出显示)
即:变量值—>控件显示。
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式