RichEdit, как установить цвет фона одной строки
У меня есть элемент управления TRichEdit, содержащий исходный код. Я хочу установить цвет фона одной строки.
Я знаю, как установить цвет текста, но разве нет способа установить цвет фона? Я не говорю о полном цвете фона для всего элемента управления, только о том, как изменить одну строку.
Мне действительно нужно написать собственный элемент управления, чтобы сделать это?
2 ответа
Здесь нет TRichEdit
свойство для установки цвета фона отдельных символов / линий. Тем не менее, вы можете использовать Win32 API SendMessage()
функция или TRichEdit
собственный Perform()
метод, чтобы отправить его EM_SETCHARFORMAT
сообщение с указанием CHARFORMAT2
структура которого crBackColor
поле установлено на нужный цвет. Вы можете применить форматирование к существующим символам, сначала выделив их, или вы можете применить форматирование к текущей позиции каретки, если нет выделения.
MSDN на RTF указывает \cbN
где N - индекс цвета.
Другие поиски показывают, что это не поддерживается многими приложениями (родной просмотрщик RTF в OS X, Microsoft Word), поэтому, возможно, вам стоит поискать собственное решение.