RichEdit不尊重带有粘贴内容的PlainText

Wiz*_*ard 4 delphi richedit plaintext

我创建一个新的应用程序,放在TRichedit上并将PlainText属性设置为true.然后我运行应用程序并将一些格式丰富的文本粘贴到RichEdit中.

我希望它显示为纯文本,但它显示格式的内容.

任何人都知道如何使用TRichedit作为纯文本(而不是使用备忘录:))

Dav*_*nan 6

您需要手动执行粘贴,以确保忽略格式.

if Clipboard.HasFormat(CF_TEXT) then
  RichEdit.SelText := Clipboard.AsText; 
Run Code Online (Sandbox Code Playgroud)

从消息处理程序运行此代码WM_PASTE.

我目前不知道如何拦截CTRL+V按键并用此代码替换它.该WM_PASTE消息没有发送到丰富的编辑控件.


正如Cody在评论中所说,一个解决方案如下:

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