2010-02-26 54 views
1

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

我已经(试图)确保AutoDetectURL关闭。

我正在使用EM_STREAMOUT将编辑器保存到缓冲区,因为RichEdit似乎无法与Unicode一起使用UTF-8。

我已经查看了保存的RTF并查看了MS RTF规格,但我无法看到将使用什么控制字,所以现在我担心它实际上并未保存。

回答

1

根据我的经验,答案似乎是不.Richedit控件在运行中创建超链接格式,但不存储它。

六年前,我花了很多时间尝试使用riched20.dll(当时版本3的RichEdit控件)来实现您可能试图做的事情。我想在笔记本应用程序中拥有“正确的”超链接:url将被标记为隐藏文本,而描述文本将被加下划线并可点击。我能做的最好的就是在运行时实现这一目标,并用CFE_LINK标记任意长度的文本。保存并重新加载rtf流后,更改将消失。没有任何问题的周围做任何好处,或者,虽然这是在StackOverflow之前:)

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

+0

感谢您的回答。我会看看TRichView,但如果它从TWinControl下降,那么它不会为我工作。 – 2010-02-27 16:53:09