我正在开发Windows窗体中的文本编辑器,为此我使用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);
}
}
答案 0 :(得分:1)
来自referencesource.microsoft.com上的RichTextBoxConstants.cs:
internal const int CFM_COLOR = 0x40000000;
答案 1 :(得分:1)