该PlainText
属性仅由Lines->LoadFrom...()
andLines->SaveTo...()
方法使用,没有其他用途。
该Text
属性仅对纯文本进行操作。读取该属性会提取 RichEdit 的文本内容而不进行格式化。设置该属性根本不处理 RTF 代码,RichEdit 的文本内容将按原样替换为新文本。
如果您想在 RichEdit 中插入 RTF 代码,尤其是如果您不想覆盖 RichEdit 的当前内容,则必须EM_STREAMIN
直接使用该消息。例如:
DWORD CALLBACK StreamInCallback(DWORD_PTR dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
{
int numRead = reinterpret_cast<TStringStream*>(dwCookie)->Read(pbBuff, cb);
if (pcb) *pcb = numRead;
return 0;
}
TStringStream *strm = new TStringStream(table);
EDITSTREAM es = {0};
es.dwCookie = (DWORD_PTR) strm;
es.pfnCallback = &StreamInCallback;
SendMessage(RichEdit1->Handle, EM_STREAMIN, SF_RTF | SFF_SELECTION, reinterpret_cast<LPARAM>(&es));
delete strm;