2010-02-26 59 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