У меня есть CRichEditCtrl, и алгоритм работает с его содержимым на месте, перебирает содержимое и вносит изменения. Кажется, что это вызывает повторную окраску каждый раз, что вызывает мерцание и заметное время для завершения операции, особенно если элемент управления начинает прокручиваться.
Я задавался вопросом, есть ли для меня аккуратный способ остановить его перекраску на какое-то время. На самом деле это пользовательский подкласс CRichEditCtrl, поэтому я подумал что-то вроде:
void MyCustomEditCtrl::DoAlgorithm()
{
enableRepaint(false);
...
//to the actual work
...
enableRepaint(true);
}
Какой самый подходящий подход? Пользовательский обработчик краски, который ничего не делает во время выполнения операции? Или перекрашивание может быть отключено?