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
War es hilfreich?

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
scroll top