我们在Win32 Window中托管了一个WPF窗口。实现是这样的,当用户按下CTRL + V时,剪贴板中的文本将粘贴到KeyUp事件中的TextBox而不是KeyDown事件中(由于在MFC中托管时受TextBox控制的限制)。因此,我们覆盖了KeyUp事件以粘贴文本。
然而,在某些机器中,人们注意到文本在执行CTRL + V 仅一次时被粘贴两次。进一步调查发现它粘贴了KeyDown(默认窗口行为)以及KeyUp事件(由我们覆盖)。
想知道为什么即使在KeyDown和KeyUp的某些机器和某些机器上也仅粘贴在KeyUp上?
帮助将不胜感激。
-Nayan
答案 0 :(得分:0)
我认为这取决于当您按CTRL + V时哪个控件具有焦点。
如果编辑控件具有焦点,它将获得WM_PASTE通知,默认的WindowProc会将剪贴板内容粘贴到文本框中。
如果另一个控件具有焦点,则您需要自己处理CTRL + V以粘贴到编辑控件中。