MFC对话框——访问Edit对话框

目标:在两个EDIT对话框中输入值,将结果写入第三个对话框中

    //大概的思路:使用ADD按键来触发,所以要在这个函数体中写
    //1,获取一个控件的值。使用GetWindowText(..),
    //2,将获取的字符串中的值使用atoi转化为int,然后运算
    //3,将运算完的值转化为字符串,使用SetWindowText(..)将这个值写进入控件中
    int num1,num2,num3;
    char ch1[10], ch2[10],ch3[10];

    GetDlgItemText(IDC_EDIT1,ch1,10);
    GetDlgItemText(IDC_EDIT2,ch2,10);
    num1=atoi(ch1);
    num2=atoi(ch2);
    num3=num1+num2;
    itoa(num3,ch3,10); //将num按十进制变为一个字符串

    GetDlgItem(IDC_EDIT3)->SetWindowText(ch3);

可以使用与对话框关联的方法来访问对话框

//使用关联对话框中数据与一个变量之间的方法来访问对话框
    //使用DoExchangeData()函数来讲这些变量与对话框关联,但是这个函数具有
    //Never call this function directly. It is called by the UpdateData method.
    //Call UpdateData to initialize a dialog box controls or retrieve data from a dialog box. 
    //使用UpdateData来初始化,UpdataDate(BOOL ture)
    //具有Specifies a flag that indicates whether dialog box is being initialized (FALSE) or data is being retrieved (TRUE). 
    UpdateData(); //获取数据
    m_num3=m_num1+m_num2;
    UpdateData(false); //初始化数据

第三种方法:使用消息的方法来访问

    int num1,num2,num3;
    char ch1[10],ch2[10],ch3[10];

    m_edit1.SendMessage(WM_GETTEXT,10,(LPARAM)ch1);
    m_edit2.SendMessage(WM_GETTEXT,10,(LPARAM)ch2);

    num1=atoi(ch1);
    num2=atoi(ch2);
    num3=num1+num2;
    itoa(num3,ch3,10);

    m_edit3.SendMessage(WM_SETTEXT,0,(LPARAM)ch3);

这里的m_edit1已经和对话框相关联了

第四种方法:

    int num1,num2,num3;
    char ch1[10],ch2[10],ch3[10];

    SendDlgItemMessage(IDC_EDIT1,WM_GETTEXT,10,(LPARAM)ch1);
    SendDlgItemMessage(IDC_EDIT2,WM_GETTEXT,10,(LPARAM)ch2);

    num1=atoi(ch1);
    num2=atoi(ch2);
    num3=num1+num2;
    itoa(num3,ch3,10);

    SendDlgItemMessage(IDC_EDIT3,WM_SETTEXT,0,(LPARAM)ch3);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值