WPF控件中的本机Win32窗口

时间:2011-09-20 23:45:28

标签: c# .net c++ wpf winapi

我正在开发一个需要主机本机Win32窗口的应用程序,不知何故我没有线索如何做到这一点。

我需要创建一个可以在其上显示本机Win32控件的WPF对话框窗口。这个对话框窗口上也会有WPF控件,所以我正在寻找某种Grid,我可以把它带到HWND并将它发送到非托管C ++控件,所以它可以在它上面绘制。 这可能吗?

我不需要知道该表面内发生了什么,只需要让C ++ dll绘制它,我需要做的就是传递具有适当大小的HWND(我知道)。

我是WPF的新手(用于做win32编程)并且很丢失(但我现在如何将它与C#.NET等接口)

如果您能给我任何提示,那会很棒:)

1 个答案:

答案 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的。

然后,如果您有特定问题,请在此处询问,人们会在特定点上帮助您。