MFC中文本编辑框如何自动滚动到最后一行。

我已经在Properies里将MultiLine,Vertical scroll,Auto VScroll设置为True,并将Auto HScroll设置为FALSE了,其他的属性没动。然后在该编辑框的EN_CHANGE消息函数里面将m_ctrlORDER.LineScroll(m_ctrlORDER.GetLineCount());加了进去,为什么我的编辑框在接收数据的时候,还是不能自动滚动到最后一行。
嘿嘿,我自己解决了。应该把m_ctrlORDER.LineScroll(m_ctrlORDER.GetLineCount());放在UpdateData之后。

CEdit m_Edit;
int cnt = m_Edit.GetLineCount();
m_Edit.LineScroll(cnt, 0);

1.CEdit::LineScroll
void LineScroll(int nLine,int nChars = 0);
参数:

nLine
   æŒ‡å®šçºµå‘滚动的行数。
   

nChars
   æŒ‡å®šæ°´å¹³æ»šåŠ¨çš„字符数。如果编辑控件使用ES_RIGHT或ES_CENTER风格,此值无效。      

说明:
调用此成员函数滚动多行编辑控件的文本。
此成员函数仅用于多行编辑控件。
编辑控件的纵向滚动不能超过该文本的最后一行,如果当前行号加上由nLines指定的行数超过编辑控件中的总行数,则它的值被调整而使得文本的最后一行滚动达到编辑控件窗口的顶端。
此函数可以水平滚动经过每行的最后一个字符。


2.CEdit::GetLineCount
int
GetLineCount()const;
返回值:
在多行编辑控件中的包含的一个整数总行数。如果没有向控件输入任何文本,则返回值为1。
说明:
调用此成员函数获取一个多行编辑控件中的总行数。
此函数仅应用于多行编辑控件。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-12-04
设置多行,垂直滚动,然后关联成员变量xxx,然后xxx.LineScoll(xxx.GetLine);
第2个回答  2014-11-26
好像-1就行,不用m_ctrlORDER.GetLineCount()本回答被网友采纳
相似回答