Изменение цвета в Rich Edit Control - PullRequest
       19

Изменение цвета в Rich Edit Control

0 голосов
/ 17 февраля 2010

при стирании цветного текста. По умолчанию элемент управления устанавливает новый введенный цвет текста обратно на недавно удаленный. как вы можете избежать этого? Вам нужно проверять каждый стиль символов перед тем, как печатать?

UPDATE:

Я пытаюсь установить цвет текста следующим образом.

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

1 Ответ

1 голос
/ 17 февраля 2010

Ваш вопрос совершенно неясен. Дикий удар в этом: вы теряете все форматирование при назначении свойства Text. Обязательно используйте AppendText () вместо этого. И установить свойства SelectionColor и SelectionBackColor обратно к тому, что было после окрашивания любого текста, чтобы вновь введенный текст получил предпочтительные цвета по умолчанию.

...