成功: MFC使用CEdit做一个显示日志的自动滚动窗口

来源:互联网 发布:云计算岗位多吗 编辑:程序博客网 时间:2024/05/22 01:59

三年前做一个辅助程序的时候用到MFC的CEdit做一个滚动窗口,在客户不点击选择光标的时候,可以自动滚动,但是一旦鼠标点击了光标就出现日志显示乱了

奈何一直都没法解决

先贴上关键代码


void CLPC1768_UpgradeToolDlg::ShowEditLog(CString m_str){static int ipos = 0;CTime time = CTime::GetCurrentTime();CString sTime = time.Format(_T("%H:%M:%S  "));m_str = sTime + m_str + L"\r\n";//m_EditLog.LineScroll(m_EditLog.GetLineCount());   //永远滑动到最下面m_EditLog.SetSel(-1, -1, FALSE);   //nstart = -1表示取消所有选择int iTextLen = m_EditLog.GetWindowTextLength();m_EditLog.SetSel(iTextLen, iTextLen, FALSE);m_EditLog.SetFocus();       //移动光标到最后m_EditLog.ReplaceSel(m_str);     //这个函数还是在光标的位置书写m_EditLog.LineScroll(m_EditLog.GetLineCount());   //可用于水平滚动所有行最后一个字符,这只是设置edit进行滚动}