如何在MFC中显示CRICHEDITCRL中的红色曲线

如何在MFC中显示CRICHEDITCRL中的红色曲线,mfc,spell-checking,cricheditctrl,Mfc,Spell Checking,Cricheditctrl,我正在MFC应用程序中实现拼写检查器。我想做的是在拼写错误的单词下面显示红线 我发现了一个例子,它已经完成了,但它只适用于一个简单的编辑框,因为它可以简单地使用编辑控件的默认字体进行计算,以绘制曲线。但它不适用于富编辑控件,因为在富编辑控件中,不同的单词可能具有不同的字体。在本例中,我发现的示例在错误的位置绘制线条 请让我知道是否有人已经为CRICHEDITCRL做了这件事?(它必须处理rich edit控件中存在的任何字体/大小的文本。) 谢谢, Sachin使用以下信息: 我希望这能在你的课

我正在MFC应用程序中实现拼写检查器。我想做的是在拼写错误的单词下面显示红线

我发现了一个例子,它已经完成了,但它只适用于一个简单的编辑框,因为它可以简单地使用编辑控件的默认字体进行计算,以绘制曲线。但它不适用于富编辑控件,因为在富编辑控件中,不同的单词可能具有不同的字体。在本例中,我发现的示例在错误的位置绘制线条

请让我知道是否有人已经为CRICHEDITCRL做了这件事?(它必须处理rich edit控件中存在的任何字体/大小的文本。)

谢谢, Sachin使用以下信息:

我希望这能在你的课文中得到强调

CHARFORMAT2 format;
SecureZeroMemory(&format, sizeof(CHARFORMAT2));
format.cbSize = sizeof(CHARFORMAT2);
format.dwMask = CFM_UNDERLINE|CFM_UNDERLINETYPE;
format.dwEffects = CFE_UNDERLINE;
format.bUnderlineType = CFU_UNDERLINE
window->SendMessage(EM_EXSETSEL, NULL, (LPARAM)&range);
window->SendMessage(EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&format);
CHARFORMAT2 format;
SecureZeroMemory(&format, sizeof(CHARFORMAT2));
format.cbSize = sizeof(CHARFORMAT2);
format.dwMask = CFM_UNDERLINE|CFM_UNDERLINETYPE;
format.dwEffects = CFE_UNDERLINE;
format.bUnderlineType = CFU_UNDERLINEWAVE | 0x50;
SendMessage(EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&format);