Я занимаюсь разработкой текстового редактора в Windows Forms, для которого я использую виджет RichTextBox. Я столкнулся с проблемой, когда при выборе фрагментов текста с различными стилями выборка возвращала бы нулевое значение, что не позволило мне, скажем, изменить размер текста, в котором есть части Verdana и Arial.
Чтобы решить эту проблему, я создал новый класс, который манипулирует структурой CHARFORMAT и отправляет сообщения в соответствии со стилем, который я хочу изменить. Теперь мне нужно сделать функцию, которая меняет цвет шрифта по выбору пользователя. Для этого мне нужен тег CFM_COLOR, который я понятия не имею, что это такое, и я не могу найти его где-либо.
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public Color SelectionFontColor
{
set
{
CHARFORMAT cf = new CHARFORMAT();
cf.cbSize = Marshal.SizeOf(cf);
cf.dwMask = CFM_COLOR;
// There might be some missing code
???
SendMessage(Handle, EM_SETCHARFORMAT, SCF_SELECTION, ref cf);
}
}