CRichEdit-刷新问题
最近使用 CRichEdit 遇到一些问题,网上搜到类似问题 如何让CRichEditCtrl滚动到最后一行(大量数据处理) 但是没有很好的解决方法。
CRichEditCtrl 自动滚动到最后一行的方法, 常见有两种:
1. 利用 CRichEditCtrl::LineScroll
m_edit.LineSrcoll(m_edit.GetLineCount());
效果是当前页满了之后,翻下一页。
2. 利用 CRichEditCtrl::PostMessage
m_edit.PostMessage(WM_VSCROLL, SB_BOTTOM, 0);
可以自动滚动到最后一行,但是大量数据刷新或数据刷新过快时,知道所有数据处理完才滚动到最后一行。
遇到 如何让CRichEditCtrl滚动到最后一行(大量数据处理) 这样的问题是,解决方法是
3. 利用 SendMessage
m_edit.SetRedraw(FALSE);
m_edit.SetSel(-1, -1);
m_edit.ReplaceSel(str);
m_edit.SetRedraw(TRUE);
::SendMessage(m_edit.GetSafeHwnd(), WM_VSCROLL, SB_BOTTOM, 0);
m_edit.Invalidate();
m_edit.UpdateWindow();