你能将一个进程的Direct3D窗口渲染到另一个进程'HWND吗?

时间:2008-09-22 08:14:19

标签: winapi direct3d

我想要做的是让Windows应用程序启动另一个Direct3D应用程序,并将Direct3D应用程序渲染到父进程提供的控件中。

这甚至可能吗?如果是,怎么办呢?

3 个答案:

答案 0 :(得分:5)

可以轻松完成,只需在创建D3DDevice时将HWND窗口id作为参数传递即可。 它甚至可以在互操作期间工作 - 你可以将hWnd从.NET传递给C ++并使用native directX渲染C#窗口。

答案 1 :(得分:1)

这是一个示例,在现有的Win32窗口中托管WPF窗口的内容。我在编写基于WPF的屏幕保护程序时这样做,必须渲染到屏幕保护程序的小预览窗口。

http://stuff.seans.com/2008/09/01/writing-a-screen-saver-in-wpf/

答案 2 :(得分:0)

这是可能的。我记得在编写屏幕保护程序时在VB6中这样做。屏幕保护程序控制面板使用预览窗口的HWND向屏幕保护程序发送命令行。使用该HWND,您可以获得HDC,并从那里获得您需要的一切。