CFE_LINK 是不是存储在 RTF RichEdit 3.0 中?

Posted

技术标签:

【中文标题】CFE_LINK 是不是存储在 RTF RichEdit 3.0 中?【英文标题】:Is CFE_LINK stored in RTF RichEdit 3.0?CFE_LINK 是否存储在 RTF RichEdit 3.0 中? 【发布时间】:2010-02-26 20:57:19 【问题描述】:

我正在使用 MS TextServices 实现无窗口富文本编辑并设置 CFE_LINK 以创建超链接。这一切都有效,但是当我将文本保存到内部缓冲区以写入文件时,CFE_LINK 效果不会保存。

我已经(试图)确保 AutoDetectURL 处于关闭状态。

我正在使用 EM_STREAMOUT 从编辑器保存到缓冲区,因为 RichEdit 的 UTF-8 似乎不适用于 Unicode。

我查看了保存的 RTF 并查看了 MS RTF 规范,但看不到将使用哪个控制字,所以现在我担心它实际上并没有保存。

【问题讨论】:

【参考方案1】:

根据我的经验,答案似乎是否定的。richedit 控件即时创建超链接格式,但不存储它。

大约六年前,我花了很多时间尝试使用riched20.dll(当时是richedit 控件的版本3)来实现您可能想要做的事情。我想在笔记本应用程序中拥有“正确”的超链接:url 将被标记为隐藏文本,而描述文本将带有下划线且可点击。我能做的最好的就是在运行时实现这一点,用 CFE_LINK 标记任意文本段。保存并重新加载 rtf 流后,更改将消失。再多的询问也没有任何好处,尽管那是在 *** 之前 :)

我的解决方案是用第三方控件替换richedit,例如TRichView,它可以做你想做的事。

【讨论】:

感谢您的回答。我会看看 TRichView 但如果它来自 TWinControl 那么它对我不起作用。

以上是关于CFE_LINK 是不是存储在 RTF RichEdit 3.0 中?的主要内容,如果未能解决你的问题,请参考以下文章

在融合中的rtf模板中添加序列号

RichText 开源项目总结

如何将 .rtf 文件导入 silverlight 4 Richtextbox?

在使用VB的RichTextBox控件时加载文档(RTF)出现错误,应用程序出错,不能写入。

如何将一些数据导出为 .rtf 或 .doc?

是否可以像 Outlook RTF/TNEF 那样在 html 电子邮件中嵌入非图像附件?