MFC EditBox控件滚动条保持在底部的实现

前言:在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);  
 } 

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页