我有一个CRichEditCtrl,一个算法会在其中对其内容进行就地更改,迭代内容并进行更改。这似乎会导致它每次重新绘制,从而导致闪烁和明显的完成操作所需时间,特别是如果控件开始滚动。
我想知道是否有巧妙的方法让它在一段时间内停止重绘。实际上,它是使用自定义子类CRichEditCtrl,因此我正在考虑像这样的东西:
void MyCustomEditCtrl::DoAlgorithm()
{
enableRepaint(false);
...
//to the actual work
...
enableRepaint(true);
}
什么是最简洁的方法?一个自定义的on-paint处理程序,当操作正在进行时不执行任何操作?还是可以禁用重绘?