RichEdit, как установить цвет фона одной строки

У меня есть элемент управления TRichEdit, содержащий исходный код. Я хочу установить цвет фона одной строки.

Я знаю, как установить цвет текста, но разве нет способа установить цвет фона? Я не говорю о полном цвете фона для всего элемента управления, только о том, как изменить одну строку.

Мне действительно нужно написать собственный элемент управления, чтобы сделать это?

2 ответа

Решение

Здесь нет TRichEdit свойство для установки цвета фона отдельных символов / линий. Тем не менее, вы можете использовать Win32 API SendMessage() функция или TRichEdit собственный Perform() метод, чтобы отправить его EM_SETCHARFORMAT сообщение с указанием CHARFORMAT2 структура которого crBackColor поле установлено на нужный цвет. Вы можете применить форматирование к существующим символам, сначала выделив их, или вы можете применить форматирование к текущей позиции каретки, если нет выделения.

MSDN на RTF указывает \cbNгде N - индекс цвета.

Другие поиски показывают, что это не поддерживается многими приложениями (родной просмотрщик RTF в OS X, Microsoft Word), поэтому, возможно, вам стоит поискать собственное решение.

Другие вопросы по тегам