如何改变CRichEditCtrl中字体的颜色?字符是用程序添加的,不是用户输入的

vericky 2003-12-05 03:36:20
谢谢
...全文
60 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
arvid_gs 2003-12-12
  • 打赏
  • 举报
回复
CHARFORMAT cf;

cf.cbSize = sizeof(CHARFORMAT);
cf.dwMask = CFM_COLOR | CFM_BOLD | CFM_UNDERLINE;
cf.dwEffects = (unsigned long)~(CFE_UNDERLINE | CFE_BOLD | CFE_AUTOCOLOR);
cf.crTextColor = crNewColor;
cf.dwEffects |= bUnderLine ? CFE_UNDERLINE : cf.dwEffects ;
cf.dwEffects |= bBold ? CFE_BOLD : cf.dwEffects;

SetSel(iStartPos, iEndPos);
TRACE(_T("AddMsg=====Start:%d, End:%d, crNewColor:%ld\n"), iStartPos, iEndPos, cf.crTextColor);
SetSelectionCharFormat(cf);
HideSelection(TRUE, FALSE);
arvid_gs 2003-12-12
  • 打赏
  • 举报
回复
SetSelectionCharFormat 函数
extern CRichEditCtrl* pmyRichEditCtrl;
CHARFORMAT cf;

// Modify the selection format so that the selected text is
// displayed in bold and not striked out.
cf.dwMask = CFM_STRIKEOUT|CFM_BOLD;
cf.dwEffects = CFE_BOLD;
pmyRichEditCtrl->SetSelectionCharFormat(cf);

// Verify the settings are what is expected.
#ifdef _DEBUG
pmyRichEditCtrl->GetSelectionCharFormat(cf);
ASSERT((cf.dwMask&(CFM_STRIKEOUT|CFM_BOLD)) ==
(CFM_STRIKEOUT|CFM_BOLD));
ASSERT((cf.dwEffects&(CFE_STRIKEOUT|CFE_BOLD)) == CFE_BOLD);
#endif
eion 2003-12-12
  • 打赏
  • 举报
回复
CRichEditCtrl &reCtrl = GetRichEditCtrl();
CHARFORMAT cf;
cf.cbSize = sizeof(CHARFORMAT);
cf.dwMask = CFM_COLOR;
cf.crTextColor = RGB(0, 0, 100);
reCtrl.SetSelectionCharFormat(cf);

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧