假设我有一个非常基本的文本编辑器,如下所述:
http://aclacl.brinkster.net/MFC/ch12e.htm
此文本编辑器能够创建,保存和打开包含以下格式化文本的文件:
Lorem ipsum dolor sit amet ,consectetur adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。 Ut enim ad minim veniam,quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat 。 Duis aute irure dolor in repreptderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur。 Excepteur sint occaecat cupidatat non proident,sunt in culpa qui officia deserunt mollit anim id est laborum。
现在想象一下斜体文字也是不完整的。
有没有办法让上面段落中带下划线的文本的每个实例都成为字符串?
此外,是否有一种方法可以获取当前被选为String的任何文本?
答案 0 :(得分:0)
只是,我想向您展示几种方法之间的线索。
CHARFORMAT cf;
CString text;
GetDlgItemText(IDC_RICHEDIT21, text);
//loop for all text in rich edit control
for(int i = 0; i < text.GetLength(); i++)
{
m_rich->SetSel(0 + i, i + 1); //from start to end character
m_rich->GetSelectionCharFormat(cf);
if(cf.dwEffects & CFE_UNDERLINE) //check whether underline character
{
//get underline character using GetSelText() etc.
}
}
但是,此代码与性能的任何方面无关,因此如果富编辑控件中有许多字符串和带下划线的字符,则必须检查执行时间等。 另外,我认为xMRi的回复是基本而正确的方法。
我也想推荐以下文章。