4

新しいアプリケーションを作成し、TRichedit にドロップして、PlainText プロパティを true に設定します。次に、アプリケーションを実行し、リッチ フォーマットのテキストを RichEdit に貼り付けます。

プレーンテキストとして表示されることを期待していますが、フォーマット付きのコンテンツが表示されます。

プレーンテキストと同じように TRichedit を使用する方法を誰もが知っています (メモを使用しない:))

4

1 に答える 1

6

フォーマットが無視されるように手動で貼り付ける必要があります。

if Clipboard.HasFormat(CF_TEXT) then
  RichEdit.SelText := Clipboard.AsText; 

のメッセージ ハンドラからこのコードを実行しますWM_PASTE

CTRL+V現在、キープレスをインターセプトしてこのコードに置き換える方法がわかりません。WM_PASTEメッセージはリッチ エディット コントロールには送信されません。


Cody がコメントで示唆しているように、1 つの解決策は次のとおりです。

  • 編集コントロール内のすべてのテキストが保護されていることを確認してください。
  • サブクラスTRichEdit化してオーバーライドしますCNNotify
  • EN_PROTECTEDメッセージを処理し、msg=WM_PASTE上記のテキスト コードとして貼り付けを使用し、メッセージ ハンドラーから 1 を返して、要求された操作 (リッチ ペースト) が拒否されたことを示します。
于 2011-05-18T06:40:38.900 に答える