我写了个MFC模拟下位机串口通信程序,
在接受数据时用UpdateData(FALSE)刷新来观察接收到的数据,但是发现其他所有的编辑框还未等我输入完,马上又成为了开始的状态。很是郁闷!
高手指点一二!!我怎样才能做到想刷新哪个编辑框就刷新那个编辑框呢?大侠指点!!!

解决方案 »

  1.   

    额UpdateData(FALSE)是对所有的控件。你可以用GetDlgItem(xxxx)取得控件指针来设置。
      

  2.   

    SetDlgItemText(IDC_EDIT1, "Hello ");
    或者
    GetDlgItem(IDC_YOURID)-> SetWindowText( "abc ");
    意思就是对你所要改变的内容的控件一个个的赋值。
      

  3.   

    我用过的方法如下:
    1.用TIMER来控制接受情况,每秒刷新一次(对于不断变化的数据);
    2.建立一个线程来接受数据,然后获取该EDIT的指针进行刷新;
    另外我倒是有个想法,自己没试过:
    响应接受框的EN_UPDATE事件,在里面写接受数据的函数,理论上不知可行不?
      

  4.   

    我也没试过,如果你对那个编辑框Invalidate会不会有效果?
      

  5.   

    给那些其他的编辑框映射OnEditChanged()函数,在里面加入UpdateData(TRUE)。
      

  6.   

    UpdateData(false)是将对应的变量数据传如控件,你是不是设置了什么定时器,调用UpdateData(false)?
    将编辑框的数据传入变量应该用UpdateData(true)