最近做了一个MFC程序,用匿名管道的方法读取命令行界面输出的内容到对话框的Edit控件上。在一个while的循环里,不断地从命令行界面上读数据,可是编辑框在动态显示显示输出内容时,编辑框的滚动条总是往上跑,这就导致了看不到最新读到的数据内容,于是就思考着如何使滚动条在接收数据的过程中一直保持向下走,查了一些资料,并结合自己的想法提出了一下思路(代码):
.......................................
while ( true )
{
if ( !ReadFile(hRead,Buf,sizeof(Buf)-1,&bytesRead,NULL) || !bytesRead ) //判断是否读完 。
{
break;
}
Buf[bytesRead] = '\0';
m_Cmd += Buf;
UpdateData(false);
CEdit *p = (CEdit*)GetDlgItem(IDC_EDIT_CMD); //定义一个指向编辑框的句柄的指针
p->LineScroll(p->GetLineCount());//滚动条置底
Sleep (200);
}
红色语句部分即为所需的代码内容。。