我正在使用一个 winform HTML 编辑器,它使用AxSHDocVw.AxWebBrowser
. 用户正在将其他软件中的文本复制并粘贴到此控件中。问题是,粘贴Ctrl-V时会添加一些字体标签以保留格式。我不想保留格式,它应该粘贴没有格式的干净文本,或者至少不应该添加FONT
标签。我认为是拦截Ctrl-V和粘贴清理剪贴板文本之前。
所以,我尝试拦截WM_PASTE
消息并用固定测试(只是为了检查)替换剪贴板内容,如下所示
class myWB : AxSHDocVw.AxWebBrowser
{
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x302) // Trap WM_PASTE:
{
Clipboard.Clear();
Clipboard.SetText("some text");
return;
}
base.WndProc(ref m);
}
}
但它不起作用。我在 IF 块之前添加了以下内容,以查看它是否正在接收WM_PASTE
消息。
Debug.WriteLine(m.Msg);
在运行时,即使在多个Ctrl-V.
它没有收到该消息吗?
那么有什么办法呢?粘贴前如何清理文本?