Cómo detener un control / Win32 re-pintura MFC
-
03-10-2019 - |
Pregunta
Tengo un CRichEditCtrl, y un algoritmo trabaja en su contenido in situ, iteración a través de los contenidos y hacer cambios. Esto parece hacer que se vuelva a paaint cada vez, lo que provoca el parpadeo y un tiempo apreciable para completar la operación, especialmente si el control empieza a oscilar. Me preguntaba si hay una manera ordenada para que pare que volver a pintar por un período. En realidad es una subclase personalizada de CRichEditCtrl en uso así que estaba pensando algo como:
void MyCustomEditCtrl::DoAlgorithm()
{
enableRepaint(false);
...
//to the actual work
...
enableRepaint(true);
}
¿Cuál es el enfoque más bonito? Un controlador personalizado en la pintura que no hace nada cuando una operación está en curso? O puede volver a pintar realmente ser discapacitado?
Solución
Nunca he utilizado la función, pero parece que quiere mirar CWnd :: SetRedraw .