我有一个 CRichEditCtrl,一个算法就地处理它的内容,遍历内容并进行更改。这似乎导致它每次都重新绘制,这会导致闪烁和完成操作的明显时间,尤其是当控件开始滚动时。我想知道是否有一种巧妙的方法可以让我停止重新粉刷一段时间。它实际上是使用中的 CRichEditCtrl 的自定义子类,所以我在想类似的东西:
void MyCustomEditCtrl::DoAlgorithm()
{
enableRepaint(false);
...
//to the actual work
...
enableRepaint(true);
}
最整洁的方法是什么?一个自定义的 on-paint 处理程序在操作进行时什么都不做?或者实际上可以禁用重绘?