MFC Rich编辑控件2.0文本颜色



我觉得这里的想法很简单,但我似乎想不通。本质上,我拥有的是一个MFC单视图应用程序,只有一个富编辑控件2.0和一些文本。假设这个控件说:"请单击此处快进。">

CHARFORMAT cf = { sizeof(cf) };
cf.dwEffects = CFM_BOLD;
cf.dwMask = CFM_BOLD;
m_pMessageTextBox.SetSel(13, 17);
m_pMessageTextBox.SetSelectionCharFormat(cf);

现在,这段代码中,我只将单词"here"加粗,这就是我想要的。但是除了加粗之外,我想把整个文本的颜色改成红色

我只需要看看如何将富编辑控件2.0中的文本转换为不同的颜色。我浏览过stackoverflow和谷歌,很多关于这方面的文档都是10年前的。

这是最近问的一个问题,他问的问题和我问的问题一样,只是他的帖子是一个我真的不在乎的巨大代码片段。我已经试过使用

cf.crTextColor = RGB(255,0,0); 

在使用之前

m_pMessageTextBox.SetSelectionCharFormat(cf);

没有什么变化,我想在这种情况下,粗体字会同时是粗体和红色,但它只是保持黑色。

好吧,所以我设法弄清楚了,我的一个条件语句被破坏了,所以我的部分代码从未被读取过。对于任何遇到这个问题的人来说,这就是我使用的:

CHARFORMAT cf = { sizeof(cf) };
cf.dwEffects = CFM_BOLD;
cf.dwMask = CFM_BOLD;
m_pMessageTextBox.SetSel(13, 17);
m_pMessageTextBox.SetSelectionCharFormat(cf);
cf.cbSize = sizeof(cf);
cf.dwMask = CFM_COLOR;
cf.dwEffects = 0;
m_pMessageTextBox.SetSel(0, -1);
m_pMessageTextBox.SetSelectionCharFormat(cf); 

为此,我还没有机会摆弄它,只是想看看我是否可以缩短它,但它现在正按照我想要的方式工作。首先它做粗体属性并将其应用于文本,然后它做文本颜色属性并将它从文本的开始应用到结束。

最新更新