1

私はMSTextServicesを使用して、ウィンドウのないリッチテキスト編集を実装し、ハイパーリンクを作成するためにCFE_LINKを設定しています。これはすべて機能しますが、ファイルに書き込むためにテキストを内部バッファーに保存すると、CFE_LINK効果が保存されません。

AutoDetectURLがオフになっていることを確認しました(試しました)。

RichEditはUnicodeで動作しないように見えるため、UTF-8としてエディターからバッファーに保存するためにEM_STREAMOUTを使用しています。

保存されたRTFとMSRTF仕様を確認しましたが、どの制御ワードが使用されるかわからないため、実際には保存されていないのではないかと心配しています。

4

1 に答える 1

1

私の経験からすると、答えはノーのようです。リッチエディット コントロールはハイパーリンクの書式設定をその場で作成しますが、保存はしません。

6 年ほど前に、riched20.dll (当時はバージョン 3 の richedit コントロール) を使用して、おそらくあなたがやろうとしていることを達成しようと多くの時間を費やしました。ノートブック アプリケーションに「適切な」ハイパーリンクが必要でした。URL は隠しテキストとしてマークされ、説明テキストには下線が引かれ、クリック可能になります。私ができる最善の方法は、実行時にこれを達成し、テキストの任意のストレッチを CFE_LINK でマークすることでした。rtf ストリームを保存して再ロードすると、変更が失われます。それはStackOverflowのかなり前のことでしたが:)

私の解決策は、リッチエディットをTRichViewなどのサードパーティ コントロールに置き換えることです。

于 2010-02-27T14:54:58.887 に答える