您没有说明您实际使用的是哪种富文本框。
如果您使用的是 .NET RichTextBox 类,则可以遍历其 Lines 属性:
array<String^>^ lines = textBox->Lines;
int count = lines->Length;
for (int idx = 0; idx < count; ++idx)
{
// use lines[idx] as needed...
}
如果您使用的是 MFC CRichEditCtrl 类,则可以调用其 GetLineCount()、LineLength() 和 GetLine() 方法:
int count = textBox.GetLineCount();
for (int idx = 0; idx < count; ++idx)
{
std::basic_string<TCHAR> line;
int len = textBox.LineLength(idx);
if (len > 0)
{
line.resize(len+1);
len = textBox.GetLine(idx, &line[0], len);
line.resize(len);
}
// use line as needed...
}
如果您使用的是 Win32 Rich Edit 控件,您可以向它发送EM_GETLINECOUNT、EM_LINELENGTH 和EM_GETLINE 消息:
int count = SendMessage(hTextBox, EM_GETLINECOUNT, 0, 0);
for (int idx = 0; idx < count; ++idx)
{
std::basic_string<TCHAR> line;
int len = SendMessage(hTextBox, EM_LINELENGTH, idx, 0);
if (len > 0)
{
line.resize(len+1);
*(reinterpret_cast<WORD*>(&line[0])) = (WORD)len;
len = SendMessage(hTextBox, EM_GETLINE, idx, reinterpret_cast<LPARAM>(&line[0]));
line.resize(len);
}
// use line as needed...
}