Comment arrêter une nouvelle peinture de contrôle MFC / win32
-
03-10-2019 - |
Question
J'ai un CRichEditCtrl, et un algorithme fonctionne sur son contenu en place, itérer le contenu et faire des changements. Cela semble l'amener à nouveau paaint chaque fois, ce qui provoque vacillante et un temps notable pour terminer l'opération, en particulier si le contrôle commence à défiler. Je me demandais s'il y a une belle façon pour moi de l'arrêter repeindre pendant une période. Il est en fait une sous-classe personnalisée de CRichEditCtrl utilisé donc je pensais quelque chose comme:
void MyCustomEditCtrl::DoAlgorithm()
{
enableRepaint(false);
...
//to the actual work
...
enableRepaint(true);
}
Quelle est l'approche la plus nette? Un gestionnaire personnalisé sur-peinture qui ne fait rien lorsqu'une opération est en cours? Ou peut repeindre effectivement être désactivé?
La solution
Je ne l'ai jamais utilisé la fonction, mais il semble que vous voulez regarder CWnd :: setRedraw .