9.6 对话框:为对话框添加控件 vs2010/MFC

1.建立工程
“ApplicationType”对话框,在Application type下选择Dialog based,其他使用默认设置,点“Finish”。
此工程的文件要比单文档应用程序少的多.

IDC_SUMMAND_STATIC     IDC_SUMMAND_EDIT
IDC_ADDEND_STATIC  IDC_ADDEND_EDIT
IDC_SUM_STATIC    IDC_SUM_EDIT
IDC_ADD_BUTTON


2.为对话框中的控件添加变量
IDC_SUMMAND_EDIT
      1.在编辑框上点右键,在右键菜单中选择“Add Variable”。弹出添加成员变量的向导对话框。
      2.我们想为其添加值变量而不是控件变量,所以对话框中“Category”下的组合框中选择Value。
      3.“Variable type”下的组合框此时默认选中的是“CString”,CString是字符串类,显然不能进行加法运算。我们可以选择double、float、int等。这里我们选择double,即编辑框关联一个double类型的变量。
       4.在“Variable name”中写入自定义的变量名。鸡啄米为其取名m_editSummand。


参照此方法,再分别为加数的编辑框IDD_ADDEND_EDIT添加double型变量m_editAddend、和的编辑框IDD_SUM_EDIT添加double型变量m_editSum。
目的:
      鸡啄米再以Addition程序为例简单说下数据交换机制。如果我们在程序运行界面中输入被加数,则通过CAddition的DoDataExchange()函数可以将输入的值保存到m_editSummand变量中,反之如果程序运行中修改了变量m_editSummand的值,则通过CAddition的DoDataExchange()函数也可以将新的变量值显示到被加数的编辑框中。
但是这种数据交换机制中,DoDataExchange()并不是被自动调用的,而是需要我们在程序中调用CDialogEx::UpdateData()函数,由UpdateData()函数再去自动调用DoDataExchange()的。


3,使用Class Wizard添加消息处理函数
“计算”按钮的ID为IDC_ADD_BUTTON,上图中Commands标签下,Oject IDs列表中有此ID,因为我们是想实现点击按钮后的消息处理函数,所以在Messages列表中选择BN_CLICKED消息,然后点右上方的Add Handler就可以添加BN_CLICKED消息处理函数OnClickedAddButton了。当然你也可以改名,但一般用的默认的就可以。


最直接最简单的方法就是,双击“计算”按钮,MFC会自动为其在CAdditionDlg类中添加BN_CLICKED消息的处理函数void CAdditionDlg::OnBnClickedButton1()。

函数:
    void CAdditionDlg::OnBnClickedAddButton()   
    {   
        // TODO: Add your control notification handler code here   
        // 将各控件中的数据保存到相应的变量   
        UpdateData(TRUE);   
      
        // 将被加数和加数的加和赋值给m_editSum   
        m_editSum = m_editSummand + m_editAddend;   
      
        // 根据各变量的值更新相应的控件。和的编辑框会显示m_editSum的值   
        UpdateData(FALSE);   
    }  



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值