开启左侧

VC编辑框(EDIT)的自动换行与自动滚屏的方法

[复制链接]
Princess 发表于 2018-5-10 19:11:25 | 显示全部楼层 |阅读模式
方法一:(当EDIT映射到一CString时)
m_String = m_String + sNewString + "\r\n"    //自动换行
UpdateData(false);

此法只能做到自动换行,不会自动滚屏到最后一行。

方法二:(当EDIT映射到一EDIT时)
m_Edit.SetSel(-1, -1);       //自动滚屏
m_Edit.ReplaceSel(sNewString+"\r\n");    //自动换行
UpdateData(true);

此法可以做到自动换行,并自动滚屏到最后一行。

以上,m_String、m_Edit.分别为给编辑框添加的成员变量;sNewString 为要显示的字符串
注意二法中UpdataData参数的区别。
我发现修改编辑框的属性:Auto_HScroll等用处不大。

From: http://www.cnitblog.com/liaoqingshan/archive/ 2006/08/28/16077.aspx



方法三:CEdit没有类似AppendText的函数,如果采用SetWindowText,会造成画面闪烁,滚动条也会有问题。

另一种追加方式可以解决这些问题:

int nLength = m_edit.SendMessage(WM_GETTEXTLENGTH);
或者
int nLength=m_edit.GetWindowTextLength();
m_edit.SetSel(nLength, nLength);
m_edit.ReplaceSel( " abc " ); UpdateData(true);


您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表