使用 MFC 将两个数字相加

Posted

技术标签:

【中文标题】使用 MFC 将两个数字相加【英文标题】:Add two numbers using MFC 【发布时间】:2018-10-22 15:24:04 【问题描述】:

由于我是 MFC 的初学者,因此我需要帮助来了解一些基础知识。目前我不清楚如何获取一些价值(通过 ID 或其他东西)并使用它,或者改变它......

假设我有这样的事情:

编辑框的ID分别为:IDC_EDIT1IDC_EDIT2IDC_EDIT3

计算按钮的ID是IDC_BUTTON1

如何获取IDC_EDIT1的值,并将其添加到IDC_EDIT2,然后在计算点击时显示IDC_EDIT3

创建此对话框后,我得到以下代码:

void CMFCApplication1Dlg::OnBnClickedButton1()





void CMFCApplication1Dlg::OnEnChangeEdit1()





void CMFCApplication1Dlg::OnEnChangeEdit2()





void CMFCApplication1Dlg::OnEnChangeEdit3()



【问题讨论】:

您需要获取 Edits 值,转换为数字,计算,将结果转换回(MFC 特定?)字符串,然后设置第三个 Edit 值。 Dialog Data Exchange 解释了如何将实例变量连接到控件,并让它们反映当前状态。 【参考方案1】:

首先,试试这个:

void CMFCApplication1Dlg::OnBnClickedButton1()

   int a = GetDlgItemInt(IDC_EDIT1);
   int b = GetDlgItemInt(IDC_EDIT2);
   SetDlgItemInt(IDC_EDIT3, a+b);

【讨论】:

【参考方案2】:

MFC CDialog 是一个 CWnd(继承)。所以你可以使用GetDlgItem 访问它的子节点。如果您只想处理整数,您甚至可以使用帮助器方法GetDlgItemInt,它会将 CEdit 的文本作为整数提供给您。完成此操作后,您只需将两个数字相加并使用结果将最后一个 CEdit 的值(应该是非活动的或只读的)设置为 SetDlgItemInt

如果您想接受浮点数,您应该使用SetDlgItemText 读取值并使用SetDlgItemText 写入它们并手动处理与double 的转换。

我的意思是,您不必使用OnEnChangeEditx 通知,而是执行OnBnClickedButton1 通知中的所有内容。

由于你没有展示你当前的代码,我不能在这里多说......

【讨论】:

以上是关于使用 MFC 将两个数字相加的主要内容,如果未能解决你的问题,请参考以下文章

将两个数字相乘然后相加

如何使用 fork() 将数字与父进程和子进程相加 [重复]

这两个数字的相加如何在大会中工作

两数相加

Java之两个链表数字相加

两数相加