前言:在MFC编程中,在使用进度条的同时,需要用EDITBox将处理信息显示给用户。有的时候,信息太多,在处理的过程中,滚动条却一直保持在最上面,但我们想在处理的过程中,看到最新的处理结果,这就需要将Editbox控件的滚动条保持在底部。怎么实现呢?
1.新建一个MFC工程(基于单文档、多文档或对话框)。
2.插入对话框用于显示进度。该对话框中放置一个Editbox用于显示信息,id号为IDD_EditInfomation。
注意:Editbox的属性里面记得勾选Miltiline、Vertical Scroll和Auto VScroll。
3.将该控件与变量关联,用它的Control里面的CEdit类。同时按下ctrl+W,打开对话框,为IDD_EditInfomation关联一个CEdit类型变量,为m_EditInfomation。
4.在输出的时候:
先定义一个CString类型的变量strInfo,将要输出的内容存在该变量中;
然后定义一个int类型变量position用来存储该EditBox的位置,用m_EditInfomation.GetSel();来获取;
然后在输出前用SetSel()对m_EditInfomation进行定位,随后将信息输出在该位置上;
为了每次不把重复的内容输出,要先清空m_EditInformation.SetWindowText("");;
最后用m_EditInformation.ReplaceSelstrInfo(strInfo);来显示信息。
例:输出1-1000这1000个int数据
CString strInfo="",str;
int positon=0;
for(int i=1;i<1001;i++)
{
str.Format("%d",i);
strInfo=strInfo+str+"\r\n";
positon=m_EditInformation.GetSel();
m_EditInformation.SetSel(positon);
m_EditInformation.SetWindowText("");
m_EditInformation.ReplaceSel(strInfo);
UpdateData(false);
}