C++ 富编辑文本控件中的换行符检测

C++ 富编辑文本控件中的换行符检测,c++,mfc,richedit-control,C++,Mfc,Richedit Control,我正在尝试将一些键入文本编辑控件的文本拆分为单个单词,以将它们放入数组中……任何换行符也应放入数组中。问题是我在检测新行字符的过程中遇到了麻烦 正确的方法是什么 我尝试了以下方法: for(int i = 0; i < text.GetLength(); i++) { m_RichEditor.SetSel(0 + i, i + 2); //from start to end character m_RichEditor.GetSelectionCharFormat(cf)

我正在尝试将一些键入文本编辑控件的文本拆分为单个单词,以将它们放入数组中……任何换行符也应放入数组中。问题是我在检测新行字符的过程中遇到了麻烦

正确的方法是什么

我尝试了以下方法:

for(int i = 0; i < text.GetLength(); i++)
{
    m_RichEditor.SetSel(0 + i, i + 2); //from start to end character
    m_RichEditor.GetSelectionCharFormat(cf);


    if(m_RichEditor.GetSelText() == "\n") {
        OutputDebugString((CString)"here");
    }
for(int i=0;i
}


但这不起作用….

对于RichEdit 2.0,换行符似乎不是“\n”…而是“\r”

由于完全缺乏信息和上下文,很难说清楚,但看起来您的代码只会检测当前选择是否包含换行,并且只包含换行。听起来您希望调用一个成员函数,返回所有文本,而不仅仅是选定文本,然后在该文本中搜索换行符,而不是简单地与换行符进行比较。很抱歉,我编辑了我的原始问题以包含更多信息,但从我编写的方式来看,最终是getseltext()将选择换行符,并且只选择换行符…所以我不;我看不出哪里出了问题……您的代码不是一次选择两个字符吗?尝试将
SetSel
调用更改为
m_RichEditor.SetSel(i,i+1)是的,我最初试过。它不起作用,所以我认为“\n”可能被认为是2个字符。不,它不是,反斜杠被认为是转义字符,与下面的字符组合时给出了不同的含义。无论如何,这似乎是一种非常低效的方式来查找您感兴趣的文本。假设您使用的是
CRichEditCtrl
,您可以尝试改用member函数。