Heim >Backend-Entwicklung >C++ >Wie kann ich das Neuzeichnen von RichTextBox für die Live-Syntaxhervorhebung effizient anhalten und fortsetzen?
Repaint in RichTextBox für Live-Syntaxhervorhebung anhalten
Um Schlüsselwörter in einer RichTextBox effizient in Echtzeit hervorzuheben, ist es ideal, die Automatik des Steuerelements zu deaktivieren Neuanstrich. Die WndProc-Override-Methode ermöglicht dies zwar, ist jedoch nicht für eine externe Funktion geeignet, die eine RichTextBox benötigt.
Glücklicherweise gibt es eine Problemumgehung, die die SendMessage-API nutzt, um das automatische Neuzeichnen direkt zu steuern:
[DllImport("user32.dll")] private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp); private const int WM_SETREDRAW = 0x0b;
Durch den Aufruf von SendMessage mit wp auf 0 gesetzt wird das automatische Neuzeichnen deaktiviert. Umgekehrt wird wp durch Setzen auf 1 wieder aktiviert.
Verwendung:
Das obige ist der detaillierte Inhalt vonWie kann ich das Neuzeichnen von RichTextBox für die Live-Syntaxhervorhebung effizient anhalten und fortsetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!