我正在开发一个需要主机本机Win32窗口的应用程序,不知何故我没有线索如何做到这一点。
我需要创建一个可以在其上显示本机Win32控件的WPF对话框窗口。这个对话框窗口上也会有WPF控件,所以我正在寻找某种Grid,我可以把它带到HWND并将它发送到非托管C ++控件,所以它可以在它上面绘制。 这可能吗?
我不需要知道该表面内发生了什么,只需要让C ++ dll绘制它,我需要做的就是传递具有适当大小的HWND(我知道)。
我是WPF的新手(用于做win32编程)并且很丢失(但我现在如何将它与C#.NET等接口)
如果您能给我任何提示,那会很棒:)
答案 0 :(得分:13)
您可以按照此处的说明/步骤开始:Hosting Win32 Content in WPF
来自文章介绍:
Windows演示框架内的Win32演练(HwndHost)
要在WPF应用程序中重用Win32内容,请使用HwndHost 使HWND看起来像WPF内容的控件。像HwndSource一样 HwndHost很容易使用:派生自HwndHost并实现 BuildWindowCore和DestroyWindowCore方法,然后实例化你的 HwndHost派生类并将其放在WPF应用程序中。
如果您的Win32逻辑已经打包为控件,那么您的 BuildWindowCore实现只不过是一个调用 CreateWindow的。
然后,如果您有特定问题,请在此处询问,人们会在特定点上帮助您。