qq_38945236
qq_38945236
采纳率50%
2019-04-29 16:25 阅读 3.0k

MFC如何将数据显示在编辑框中?

10

是这样的,我的毕设是用CAN总线知识做的,上位机软件是MFC写的,下位机返回数据帧后,我需要对特定的帧ID的数据帧中前两字节的数据(16进制表示,比如 20 ff)先转换成十进制,然后计算得到一个电压值,放进编辑框中,实时显示,根据传回来数据帧前两字节的变化不断变化,这要如何实现?另外我给编辑框关联变量时,变量类型该选什么,CString还是浮点型?(电压值会出现小数),求大佬详细解答。。我对MFC没啥了解,C也忘记很多了,希望能对上述问题详细点的解答,谢谢

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    caozhy 从今以后生命中的每一秒都属于我爱的人 2019-04-29 17:07
    最简单当然是绑定为float类型了。
    不过要比较灵活一些,可以帮定为CEdit控件类型
    用 m_edit1.SetDlgItemText(你需要设置的任何文本)
    比如
    float f = 1.234; //假设从你设备读取的
    CString str;
    str.Format(_T("%f"), f);
    m_edit1.SetDlgItemText(str);
    

    不好意思,才看到你的消息,回复晚了。

    float f = 1.234; //假设从你设备读取的
    CString str;
    str.Format(_T("%f"), f);
    m_edit1.SetDlgItemText(str);
    

    图片说明

    点赞 4 评论 复制链接分享
  • u013464766 大和尚小沙弥 2019-04-29 16:53

    编辑框关联变量可以选控制型或者值类型都可以,你不熟悉的话就选值类型(和你需要数据类型一致就行).
    CString与int , float相互转换.
    int i = 15;
    float f = 1.1;
    CString stri="99",strf="77";
    stri.Format("%d",i); <=> i = atoi(str);
    strf.Format("%.2f",f); <=> f = atof(str);
    记住,数据更新或者编辑框更新后需要UpdateData(true/false),里面的true/false不要弄错了.

    点赞 评论 复制链接分享
  • qq_38945236 qq_38945236 2019-04-29 22:35
    if (frameinfo[i].ID == 0x0282)
            {
                tmpstr.Format("%02x",frameinfo[i].Data[2]);
                str.Format("%d", tmpstr);
                n = atoi((CT2A)str);;
                float m = n * 5 / 4095;
                m_Edit_nongdu.SetDlgItemText(m);
            }
    
    
    点赞 评论 复制链接分享

相关推荐