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消息不会发送到 Rich Edit 控件。


正如 Cody 在评论中建议的那样,一种解决方案如下:

  • 确保编辑控件中的所有文本都标记为受保护。
  • 子类TRichEdit和覆盖CNNotify
  • 处理EN_PROTECTED消息,如果msg=WM_PASTE然后使用上面的粘贴作为文本代码并从消息处理程序返回 1 以指示请求的操作(丰富的粘贴)被拒绝。
于 2011-05-18T06:40:38.900 回答