CHARFORMAT2 format; format.cbSize = sizeof(format); format.dwMask = CFM_UNDERLINETYPE; format.bUnderlineType = CFU_UNDERLINEWAVE; SendMessage(hWndEdit,EM_SETCHARFORMAT,SCF_SELECTION,(LPARAM)&format);
MSDN文档未指定如何更改下划线的颜色,仅指定文本(带下划线)和文本背景.我发现一些代码表示使用低位半字节用于下划线类型(CFU_UNDERLINEWAVE)而上层用于颜色.所以我试过了:
format.bUnderlineType = CFU_UNDERLINEWAVE | 0x50;
但这不起作用.
UPDATE
我用3.0版本(Riched20.dll)测试了这段代码,它正在运行.所以问题在于4.1.该功能是否已移除或移至其他位置?
它也不适用于版本6(office 2007使用的dll).