MFC如何读取rtf文件到richedit控件?
一个基于对话框的窗口上添加了一个richedit控件,用于显示rtf中读取到的文本,但rtf格式文档中保存了文字的具体信息,如何只读取文本设置到richedit控件中?这...
一个基于对话框的窗口上添加了一个richedit控件,用于显示rtf中读取到的文本,但rtf格式文档中保存了文字的具体信息,如何只读取文本设置到richedit控件中?这个程序只有DLG类和APP类。
展开
1个回答
展开全部
以前我写的一个程序,将字符串输入到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));
}
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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询