2012-05-24 31 views
0

我正在处理托管在MFC和VB6应用程序中的ActiveX控件。右键单击时ActiveX控件不会获得焦点

此ActiveX包含WPF控制,本身被一个WinForms ElementHost的托管,即:

MFC> .NET的ActiveX>的WinForms ElementHost的> WPF用户控件

当用户右击上该控件,他必须能够使用键盘箭头键在上下文菜单中导航。

如果我的控件在右键单击时发生焦点,则一切正常。

但是,如果重点是在主机应用程序中,当用户右键单击时,键盘事件会继续发送到主机MFC应用程序。

我试图调用我的WPF控件上的Focus()方法时,当我检测到右键单击,但它不起作用。

有没有人有想法?

谢谢。

回答

0

我找到了解决方法。

当WPF窗体上发生PreviewMouseRightButtonDown事件时,我在WinForm主机控件上调用Focus方法。

我不明白为什么,但这可以让用户使用他们的键盘在上下文菜单中导航。