转载地址:http://blog.csdn.net/jjq64557/article/details/6651471

CEdit 控件更新内容大概有如下几种方法:


1、关联CString变量。先改变CString变量的值,然后调用UpDateData(FALSE)来更新控件。如果需要滚动至末尾一行,可以调用来完成。

EditOutCtrl.LineScroll(EditOutCtrl.GetLineCount());

优点:简单,适合显示少量数据;缺点:当要显示大量数据时,会导致闪烁,效率低下。


2、关联控制型变量。原理同上,只是改为调用“SetWindowText()”函数来更新,优缺点同上。


3、关联控制型变量。与2中不同的是,每次只是向末尾追加数,感觉这样效率高些,而且可以自动滚动至末尾一行,这是我比较推荐的一种方法。

int i = EditOutCtrl.GetWindowTextLength();  
EditOutCtrl.SetSel(i, i);   //选中文本末尾的位置  
EditOutCtrl.ReplaceSel((LPCTSTR)RxBuf);              //添加新的字符串



注:用前两种方法时,当显示时(即调用UpdateData(FALSE),SetWindowText()时),编辑框控件会上下滚动,所以即使你最后设置了滚动到最后一行,程序中间还是会出现滚动条上下滚动,效果很不好。

而用第3种方法,无需再设置滚动到最后一行,因为它自己本身就实现了,且效果非常好。