【发布时间】:2016-04-20 01:52:08
【问题描述】:
我添加了到 RichEdit 的链接,使用 CFM_LINK/CHARFORMAT2 结构。但我不知道如何消除下划线效果。我试过了:
SendMessage(richEditHWND, EM_AUTOURLDETECT, FALSE, NULL);
SendMessage(richEditHWND, EM_SETEDITSTYLEEX, 0, SES_EX_HANDLEFRIENDLYURL);
CHARFORMAT2 cf2;
memset(&cf2, 0, sizeof(CHARFORMAT2));
cf2.dwMask = CFM_LINK| CFM_UNDERLINE | CFM_COLOR | CFM_LINKPROTECTED;
cf2.dwEffects = CFE_LINK| CFE_UNDERLINE | CFE_LINKPROTECTED;
cf2.crTextColor = RGB(255, 0, 0);
cf2.bUnderlineType = CFU_UNDERLINENONE;
SendMessage(richEditHWND, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf2);
但它不起作用。
另一种方法是将下划线颜色设置为白色,这是RichEdit的背景颜色,但这是一种hacky方式,将q,j,...等字符分开,在选择文本时也显示线条。
那么执行此操作的正确方法是什么?
注意:我使用的是RICHEDIT50W 类。
【问题讨论】:
标签: c++ winapi hyperlink underline richedit