如何停止 MFC/win32 控件的重绘

3

我有一个CRichEditCtrl,一个算法会在其中对其内容进行就地更改,迭代内容并进行更改。这似乎会导致它每次重新绘制,从而导致闪烁和明显的完成操作所需时间,特别是如果控件开始滚动。

我想知道是否有巧妙的方法让它在一段时间内停止重绘。实际上,它是使用自定义子类CRichEditCtrl,因此我正在考虑像这样的东西:

void MyCustomEditCtrl::DoAlgorithm()
{
 enableRepaint(false);
 ...
 //to the actual work
 ...
 enableRepaint(true);
}

什么是最简洁的方法?一个自定义的on-paint处理程序,当操作正在进行时不执行任何操作?还是可以禁用重绘?
1个回答

6

我从未使用过这个函数,但看起来你想要查看CWnd::SetRedraw


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接