还是不起作用呀,怎么办?
时间: 2023-10-31 11:06:18 浏览: 42
如果上述方法仍然不能解决问题,可以考虑使用EM_GETTEXTEX消息来获取纯文本。
EM_GETTEXTEX消息是一个RichEdit控件的消息,可以用来获取文本。与CRichEditCtrl::GetWindowText()方法不同,EM_GETTEXTEX消息可以获取指定范围内的纯文本,而且可以指定是否包含格式信息,非常灵活。
以下是一个示例代码:
```
// 获取文本长度
int len = richEditCtrl.GetTextLengthEx(GTL_NUMCHARS);
if (len == 0) {
return _T("");
}
// 分配缓冲区
int bufferSize = len + 1;
char* buffer = new char[bufferSize];
ZeroMemory(buffer, bufferSize);
// 获取纯文本
GETTEXTEX gte = {0};
gte.cb = bufferSize;
gte.flags = GT_DEFAULT;
gte.codepage = CP_ACP;
int nCopied = richEditCtrl.SendMessage(EM_GETTEXTEX, (WPARAM)>e, (LPARAM)buffer);
CString plainText = CString(buffer, nCopied);
// 释放缓冲区
delete[] buffer;
```
该代码将使用EM_GETTEXTEX消息获取CRichEditCtrl控件中的纯文本。需要注意的是,该方法将忽略文本中的格式信息,只返回纯文本。