Farbwechsel in Rich-Edit-Steuer
-
21-09-2019 - |
Frage
, wenn löschen Sie einen farbigen Text. Standardmäßig setzt die Steuerung den neuen eingegebenen Text Farbe zurück auf die vor kurzem gelöscht wurde. Wie kann man das vermeiden? tun müssen Sie jeden Zeichenstil überprüfen, bevor Sie schreiben?
UPDATE:
Ich versuche, die Textfarbe wie folgt eingestellt werden.
SendMessage(hEdit, EM_SETSEL, start_pos, end_pos); //select text for coloring
CHARFORMAT cf;
memset( &cf, 0, sizeof cf );
cf.cbSize = sizeof cf;
cf.dwMask = CFM_COLOR;
cf.crTextColor = RGB(255,0,0);
SendMessage( hEdit , EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &cf);
SendMessage(hEdit, EM_SETSEL, -1, 0 ); //deselect text
cf.crTextColor = RGB(0,0,0); //reset colour
SendMessage( hEdit , EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &cf); //set colour
Lösung
Ihre Frage ist ziemlich unklar. Wilder Stich an sie: Sie alle Formatierungen verloren gehen, wenn Sie die Eigenschaft Text zuweisen. Achten Sie darauf, verwenden AppendText () statt. Und, um die selection und Selection Eigenschaften zurück zu dem, was es war nach beliebigem Text Einfärben so dass neu eingegebenen Text der bevorzugten Standardfarben wird.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow