MFC如何读取rtf文件到richedit控件?

一个基于对话框的窗口上添加了一个richedit控件,用于显示rtf中读取到的文本,但rtf格式文档中保存了文字的具体信息,如何只读取文本设置到richedit控件中?这... 一个基于对话框的窗口上添加了一个richedit控件,用于显示rtf中读取到的文本,但rtf格式文档中保存了文字的具体信息,如何只读取文本设置到richedit控件中?这个程序只有DLG类和APP类。 展开
 我来答
任明星Ming
推荐于2016-09-13 · TA获得超过798个赞
知道小有建树答主
回答量:1061
采纳率:100%
帮助的人:1150万
展开全部
以前我写的一个程序,将字符串输入到RichEdit控件当中,并设置输入字符串的颜色。而且会自动滚屏到底部。
AppendToLogAndScroll(CRichEditCtrl *pEditCtrl,CString str,COLORREF color)
{
longnVisible=0;
longnInsertionPoint=0;
CHARFORMAT2cf;

//Initialize character format structure
cf.cbSize =sizeof(CHARFORMAT);
cf.dwMask =CFM_COLOR|CFM_WEIGHT|CFM_SIZE;
cf.dwEffects =CFE_BOLD;
cf.wWeight =FW_NORMAL;
cf.yHeight =225;
cf.crTextColor =color;

//Set insertion point to end of text
nInsertionPoint=pEditCtrl->GetWindowTextLength();
pEditCtrl->SetSel(-1,-1);
pEditCtrl->SetWordCharFormat(cf);
pEditCtrl->ReplaceSel(str);

pEditCtrl->SetBackgroundColor(FALSE,RGB(48,48,48));
}
更多追问追答
追问
额,这种的网上很多,我的难题是如何把rtf文件中的文本取出来或者直接设置到richedit控件上
追答
取出来用以下语句:
// 创建一个rtf文件
CFile cFile(_T("C:\\1.RTF"),CFile::modeCreate|CFile::modeWrite);
// 定义RichEdit的Stream 结构体
EDITSTREAM es;
// 设置stream结构体的文件句柄及回调函数
es.dwCookie=(DWORD)&cFile;
es.pfnCallback=StreamOutCallback;
// 将当前edit控件里的字符串输出到rtf文件里。
(你的RTF控件)->StreamOut(SF_RTF,es);

最后设置一个回调函数,即可,如下:
DWORD StreamOutCallback(DWORD dwCookie,LPBYTE pbBuff,LONG cb,LONG *pcb)
{
CFile*pFile=(CFile*)dwCookie;

pFile->Write(pbBuff,cb);
*pcb=cb;

return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式