qq_38945236
2019-04-29 16:25
采纳率: 50%
浏览 3.6k

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • blownewbee 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 评论
  • 大和尚小沙弥 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 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);
            }
    
    
    点赞 评论

相关推荐 更多相似问题