我使用MS TextServices实现无窗口富文本编辑和设置CFE_LINK以创建超链接。这一切都有效,但当我将文本保存到内部缓冲区以写入文件时,CFE_LINK效果不会保存。
我(试图)确保AutoDetectURL为OFF。
我正在使用EM_STREAMOUT从编辑器保存到缓冲区,因为RichEdit的UTF-8似乎不能与Unicode一起使用。
我查看了保存的RTF并查看了MS RTF规格,我看不出会使用哪个控制字,所以现在我担心它实际上并没有保存。
答案 0 :(得分:1)
根据我的经验,答案似乎是否定的。富有控件在运行时会创建超链接格式,但不会存储它。
六年前左右,我花了很多时间尝试使用riched20.dll(当时是richedit控件的第3版)来实现你可能尝试做的事情。我希望在笔记本应用程序中有“正确”的超链接:url将被标记为隐藏文本,而描述文本将加下划线并可点击。我能做的最好的事情就是在运行时实现这一点,用CFE_LINK标记任意一段文本。保存并重新加载rtf流后,更改将会消失。尽管在StackOverflow之前就已经好了,但是没有任何问题可以做任何好处:)
我的解决方案是用第三方控件替换richedit,例如TRichView,它可以做你想要的。