【问题标题】:Add two numbers using MFC使用 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 解释了如何将实例变量连接到控件,并让它们反映当前状态。

标签: c++ mfc


【解决方案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 通知中的所有内容。

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

    【讨论】:

      猜你喜欢
      • 2018-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-01
      • 1970-01-01
      • 2020-02-02
      • 2022-07-11
      • 1970-01-01
      相关资源
      最近更新 更多