读书人

CRichEditCtrl安插图片后存储成RTF成

发布时间: 2012-08-27 21:21:57 作者: rapoo

CRichEditCtrl插入图片后,存储成RTF成功,但是无法读取
我在CRichEditCtrl插入图片后,用以下代码,调用OnWrite存入文件,再用Word打开myfile.rtf文件,发现图片确实存在。再用OnRead反读回控件,发现图片不会显示,请问这是怎么回事?

C/C++ code
static DWORD CALLBACK MyStreamOutCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb){     CFile* pFile = (CFile*) dwCookie;     pFile->Write(pbBuff, cb);     *pcb = cb;     return 0;}static DWORD CALLBACK MyStreamInCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb){     CFile* pFile = (CFile*) dwCookie;     pFile->Read(pbBuff, cb);     *pcb = cb;     return 0;}void CTestRichEditDlg::OnWrite() {    // TODO: Add your control notification handler code here    CFile cFile(TEXT("myfile.rtf"), CFile::modeCreate|CFile::modeWrite);    EDITSTREAM es;    es.dwCookie = (DWORD) &cFile;//设置用例参数,以便回调函数调用    es.pfnCallback = MyStreamOutCallback;     m_RichEdit.StreamOut(SF_RTF, es);}void CTestRichEditDlg::OnRead() {    // TODO: Add your control notification handler code here    CFile cFile(TEXT("myfile.rtf"), CFile::modeRead);    EDITSTREAM es;    es.dwCookie = (DWORD) &cFile;//设置用例参数,以便回调函数调用    es.pfnCallback = MyStreamInCallback;     m_RichEdit.StreamIn(SF_RTF, es);        }


[解决办法]
试试 SF_TEXTIZED
[解决办法]
查一下 RichEdit 的版本。换一个版本试一下。试别的版本时,请把别的版本的dll拷到执行目录 即可。
[解决办法]
RichEdit主要用于邮件编辑器等系统应用。
我以前做过半年左右的项目就折腾RichEdit。
稍微有点忘了,版本1.0是一个独立版本,2.0以上的版本(riched20.dll)除了他自己是2.0 3.0 。。。以外,
它还为版本1.0留了一个接口(riched32.dll)。
CRichEditCtrl/View的原码文件中,就能看到riched32.dll的字样。
这两个dll都在system32里面。

你从网上,或什么地方下载,下载以后拷到执行文件目录进行测试。
因为我在做RichEdit项目,就遇到了dll不好的问题。
微软在网上提供了各个版本的riched?0.dll,供我们下载。


[解决办法]
关注
[解决办法]
顶顶顶顶顶顶
[解决办法]
关注

读书人网 >VC/MFC

热点推荐