转载地址: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种方法,无需再设置滚动到最后一行,因为它自己本身就实现了,且效果非常好。