在 MFC 的 CRichEditCtrl 类中,确实存在 GetTextRange 方法,用于获取指定范围内的文本。该方法的声明如下:
LONG GetTextRange(TEXTRANGE* pTextRange) const;

TEXTRANGE 结构体定义如下:
struct TEXTRANGE {
   CHARRANGE chrg;
   LPSTR lpstrText;
};

CHARRANGE 结构体定义如下:
struct CHARRANGE {
   LONG cpMin;
   LONG cpMax;
};

通过调用 CRichEditCtrl::GetTextRange 方法,可以获取指定范围内的文本,并将其存储在提供的 TEXTRANGE 结构体中。

以下是一个示例用法:
TEXTRANGE textRange;
textRange.chrg.cpMin = 0; // 范围的起始位置
textRange.chrg.cpMax = m_richEditCtrl.GetTextLength(); // 范围的结束位置(文本的总长度)
textRange.lpstrText = new char[textRange.chrg.cpMax + 1]; // 分配足够的空间

LONG actualLength = m_richEditCtrl.GetTextRange(&textRange);

CString textInRange(textRange.lpstrText, actualLength);

delete[] textRange.lpstrText;

TRACE("Text in range: %s\n", textInRange);

在这个示例中,我们首先设置了范围的起始位置和结束位置,然后分配了足够的空间来存储文本。接着,调用 GetTextRange 方法,将文本存储在 lpstrText 中,最后使用 TRACE 函数打印出范围内的文本。


转载请注明出处:http://www.zyzy.cn/article/detail/22170/MFC/CRichEditCtrl