求助:如何将RichEdit2控件中的文本链接也保存到RTF文件中?

ioridf 2012-08-04 11:57:53
直接上关键部分代码(程序中使用的是Rich Edit 2.0 Control):

//如下代码实现将RichEdit控件变量m_RichEdit的内容写到My_RichEdit_OutFile.rtf文件中
static DWORD CALLBACK MyStreamOutCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
{
CFile* pFile = (CFile*) dwCookie;

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

return 0;
}

void CtestRichEdit2Dlg::OnBnClickedButton4()
{
CFile cFile(TEXT("My_RichEdit_OutFile.rtf"), CFile::modeCreate|CFile::modeWrite);
EDITSTREAM es;

es.dwCookie = (DWORD) &cFile;
es.pfnCallback = MyStreamOutCallback;
m_RichEdit.StreamOut(SF_RTF, es);
}


//如下代码实现把My_RichEdit_OutFile.rtf文件中的内容写入另一个对话框的m_FuckRichEdit控件变量中
static DWORD CALLBACK MyStreamInCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
{
CFile* pFile = (CFile*) dwCookie;

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

return 0;
}

void CFuckDlg::RestoreRichEdit()
{
CFile cFile(TEXT("My_RichEdit_OutFile.rtf"), CFile::modeRead);
EDITSTREAM es;

es.dwCookie = (DWORD) &cFile;
es.pfnCallback = MyStreamInCallback;
m_FuckRichEdit.StreamIn(SF_RTF, es);
}


但是有个问题,m_RichEdit中如果有文本链接或超链接,写到rtf文件中是普通文本。我的目的是:将m_RichEdit变量中的内容和格式保持不变,拷贝到另一个对话框的RichEdit控件中,我上面的代码只能实现文本的拷贝。不知怎样才能实现所有内容格式的拷贝?有知道的大侠帮忙指点一下吧,我送全分!
...全文
190 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ioridf 2012-08-18
  • 打赏
  • 举报
回复
算了,结贴散分了,谢谢各位的热心帮助!
ioridf 2012-08-10
  • 打赏
  • 举报
回复
唉,大家都没遇到过这种问题吗?希望能有高手不吝赐教,送全分!
ioridf 2012-08-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
不客气,codeproject上有个rtflib.lib库,不知能否帮到你?

引用 7 楼 的回复:

谢谢这位朋友,这篇文章讲的是BCB控件如何实现图片从RichEdit控件中保存到rtf文件中的办法,VC中没有RichEdit1->Perform这个方法。。。引用 6 楼 的回复:

http://topic.csdn.net/u/20080318/20/5d07a670-151……
[/Quote]这个库我之前大概了解过,提供了一些函数可以方便生成支持各种格式的RTF文件,原理上是通过rtf语法来生成的,但是解决不了我这里的问题啊,我最初的目的,其实就是想实现,当对话框关闭再重新创建出来后,之前RichEdit控件里的内容,原模原样地恢复出来(格式要正确,包括各种文本链接)
naodan250 2012-08-10
  • 打赏
  • 举报
回复
不客气,codeproject上有个rtflib.lib库,不知能否帮到你?[Quote=引用 7 楼 的回复:]

谢谢这位朋友,这篇文章讲的是BCB控件如何实现图片从RichEdit控件中保存到rtf文件中的办法,VC中没有RichEdit1->Perform这个方法。。。引用 6 楼 的回复:

http://topic.csdn.net/u/20080318/20/5d07a670-1517-4675-95d9-f94d417b3cec.html
[/Quote]
ioridf 2012-08-08
  • 打赏
  • 举报
回复
谢谢这位朋友,这篇文章讲的是BCB控件如何实现图片从RichEdit控件中保存到rtf文件中的办法,VC中没有RichEdit1->Perform这个方法。。。[Quote=引用 6 楼 的回复:]

http://topic.csdn.net/u/20080318/20/5d07a670-1517-4675-95d9-f94d417b3cec.html
[/Quote]
naodan250 2012-08-08
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20080318/20/5d07a670-1517-4675-95d9-f94d417b3cec.html
傻X 2012-08-05
  • 打赏
  • 举报
回复
直接用
richEdit1->SetSel(0,-1);
richEdit1->Copy();
richEdit2->SetSel(0,-1);
richEidt2->Paste();

这个不可以么?
ioridf 2012-08-05
  • 打赏
  • 举报
回复
大家没有遇到过这个问题吗?自己顶一下,期望得到大侠们的指点
ioridf 2012-08-05
  • 打赏
  • 举报
回复
你给的这篇文章,其实就是在介绍我代码里用的StreamOut 和 StreamIn 方法啊,没看到怎么解决我的问题哦[Quote=引用 2 楼 的回复:]

Clipboard Operations in Rich Edit Controls
[/Quote]
ioridf 2012-08-05
  • 打赏
  • 举报
回复
谢谢这位朋友,但是这个办法我试了也不行,之前控件里的文本链接,粘贴回来就变成普通文本了。[Quote=引用 1 楼 的回复:]
直接用
richEdit1->SetSel(0,-1);
richEdit1->Copy();
richEdit2->SetSel(0,-1);
richEidt2->Paste();

这个不可以么?
[/Quote]

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧