如何在Win32 RichEdit中插入不带下划线的超链接?

Tuy*_*ham 5 c++ winapi richedit hyperlink underline

我添加了一个到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);
Run Code Online (Sandbox Code Playgroud)

但这不起作用。
另一种方法是将下划线颜色设置为白色,即RichEdit的背景颜色,但这是一种hacky方法,使像q,j,...这样的字符被分割,在选择文本时也显示该线。
那么这样做的正确方法是什么?
注意:我正在使用RICHEDIT50W类。

ker*_*rem -2

尝试使用 wParam=0、lParam=0 向 RichEdit 控件发送 EM_AUTOURLDETECT 消息

“指定 0 以禁用自动链接检测...”:https ://msdn.microsoft.com/en-us/library/windows/desktop/bb787991(v=vs.85).aspx