MFC中使用CEdit显示日志大量文本闪烁的问题

Windows C/C++ 浅灬笑 3175℃ 0评论

在做程序的时候需要显示日志信息,当然就想到了使用CEdit去显示,开始的时候想法很简单,直接就是每次去设置CEdit的内容即可,然而随着文本数目的增加,CEdit出现了闪烁的问题,经过一番查找,找到了比较合适的方法,这里分享一下

原理

使用CEdit的替换功能,选中CEdit的最后一个位置,然后将需要添加的日志记录替换选中的位置即可。

核心代码

void CEditLogDlg::AppendLog(CString szAppend)
{
    //m_szLog是一个CString,记录了日志内容
    szAppend+=_T("\r\n");
    m_Edit.SetSel( m_szLog.GetLength(), m_szLog.GetLength(), true );//选中
    m_Edit.ReplaceSel( szAppend ); //替换
    m_szLog+=szAppend;
}

测试效果图(2000行日志连续输出)

celogtest

 

示例工程(VC++6.0):

链接:http://pan.baidu.com/s/1MJPGM 密码:95nk

转载请注明:悠然品鉴 » MFC中使用CEdit显示日志大量文本闪烁的问题

喜欢 (0)or分享 (0)
发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址