用于托管 MFC 窗口的 C# 中的 PreTranslateMessage
我们开发了一个 MFC 应用程序,其中主窗口是在 DLL 中实现的。为了尝试对其进行改进,我们正在考虑将其更改为 WPF 应用程序,其中“旧”本机窗口将重新托管在 Wpf 窗口中。到目前为止,一切都很好。
但是,我们旧的 MFC 应用程序在应用程序级别捕获了一些消息(例如:阻止鼠标单击或键盘输入)。要在 WPF 应用程序中重新托管 MFC 窗口,我们需要一种方法来从 WPF 应用程序捕获这些内容,并要求旧的 MFC 窗口预先翻译它们...
这可能吗?
我正在考虑将 MFC 窗口重新托管在 HwndHost 中,然后添加消息挂钩。我的桥接 CLR-DLL 中的代码如下所示(并且没有实现我想要的):
MyHwndHost ^handle = gcnew MyHwndHost(pContentWnd);
handle->MessageHook += gcnew HwndSourceHook(&CVSimCoreNat::ControlMsgFilter);
任何人都可以帮忙吗?
We developped an MFC application where the main window was implemented in a DLL. In an attempt to revamp it, we are thinking of changing this to a WPF-application where the "old" native window gets rehosted in a Wpf-Window. So far so good.
However, our old MFC application trapped some messages at the application level (ex: preventing mouse-clicks or keyboard inputs). To rehost the MFC-window inside the WPF-application, we need a way to catch these from the WPF-application and ask the old MFC-window to pre-translate them...
Is this possible at all?
I was thinking of rehosting the MFC window in a HwndHost, then add a message hook. The code in my bridging CLR-DLL looks like this (and doesn't achieve what I want):
MyHwndHost ^handle = gcnew MyHwndHost(pContentWnd);
handle->MessageHook += gcnew HwndSourceHook(&CVSimCoreNat::ControlMsgFilter);
Can anyone help?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论