Frage

Ich habe einen CRichEditCtrl, und ein Algorithmus arbeitet auf seinen Inhalt an Ort und Stelle, Iterieren durch die Inhalte und Änderungen vornehmen. Dies scheint es zu verursachen jedes Mal neu paaint, das Flimmern verursacht und eine merkliche Zeit um den Vorgang abzuschließen, vor allem, wenn die Steuerung beginnt zu steigen. Ich fragte mich, ob es eine nette Art und Weise ist für mich für einen Zeitraum Neuanstrich zu stoppen. Es ist eigentlich eine benutzerdefinierte Unterklasse von CRichEditCtrl im Einsatz, damit ich so etwas wie dachte:

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

Was ist der sauberste Ansatz? Eine benutzerdefinierte On-Lack-Handler, der nichts tut, wenn eine Operation im Gange ist? Oder kann tatsächlich deaktiviert neu zu streichen?

War es hilfreich?

Lösung

Ich habe noch nie die Funktion verwendet, aber es sieht aus wie Sie auf CWnd :: SetRedraw .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top