Можете ли вы визуализировать окно Direct3D для одного процесса в другой процесс 'HWND? - PullRequest
7 голосов
/ 22 сентября 2008

Я хочу, чтобы приложение Windows запустило другое приложение Direct3D, а приложение Direct3D отобразило элемент управления, предоставленный родительским процессом.

Это вообще возможно? Если это так, как это будет сделано?

Ответы [ 3 ]

5 голосов
/ 02 ноября 2008

Это можно сделать легко, все, что вам нужно сделать, это передать идентификатор окна HWND в качестве параметра при создании D3DDevice. Он даже работает во время взаимодействия - вы можете передать hWnd из .NET в C ++ и визуализировать окно C #, используя нативный DirectX.

1 голос
/ 08 апреля 2009

Вот один пример размещения содержимого окна WPF в существующем окне Win32. Я сделал это при написании экранной заставки на основе WPF, когда нужно было отобразить небольшое окно предварительного просмотра Заставки.

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

0 голосов
/ 22 сентября 2008

Это возможно. Я помню, как делал это в VB6, когда писал заставки. Панель управления заставкой отправляет командную строку заставке с HWND окна предварительного просмотра. Используя этот HWND, вы можете получить HDC и все остальное, что вам нужно.

...