如何控制CListBox大量更新时闪烁的问题?
我用CListBox用作日志输出窗口,最新日志始终插在第一行(倒排),旧日志向下滚动。
我用的插入方式为:
::SendMessage(g_hwndLogger, LB_INSERTSTRING, 0, (LPARAM)A2T(log.c_str()));
现在问题是,当日志更新快时,会出现这个窗口闪屏,非常讨厌。
请问如何避免闪屏情况?
另外一个问题是,我看到CListBox有一个InitStorage的选项,预先分配内存加速响应。这样的话,比如我预先分配200行日志,可否自动控制这个CListBox仅包含200行记录,从头新插入的记录会导致直接将末尾的记录删除。毕竟窗口日志保留太多也没什么用,全部日志已经落地到文件了。
实现这个功能有更好的方法吗?一定要在插入前删除最末尾记录吗?