Окно собственного Win32 в WPF Control

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

Мне нужно создать диалоговое окно WPF, которое может отображать на нем собственный элемент управления Win32. В этом диалоговом окне также будут элементы управления WPF, поэтому я ищу какой-то Grid, который мог бы взять HWND и отправить его на неуправляемый элемент управления С++, чтобы он мог на него нарисовать. Возможно ли это?

Мне не нужно знать, что происходит внутри этой поверхности, просто нужно позволить dll С++ рисовать на нем, и все, что мне нужно сделать, это передать HWND, который имеет правильный размер (который я знаю).

Я новичок в WPF (используется для создания win32-программирования) и довольно утерян (но теперь я могу связать его с С#.NET и т.д.)

Было бы здорово, если бы вы могли прислать мне любые подсказки:)

Ответ 1

вы можете начать с инструкций/шагов здесь: Хостинг содержимого Win32 в WPF

из введения статьи:

Прохождение Win32 внутри Windows Presentation Framework (HwndHost)

Чтобы повторно использовать содержимое Win32 внутри приложений WPF, используйте HwndHost, который элемент управления, который делает HWND похожим на содержимое WPF. Как HwndSource, HwndHost прост в использовании: происходит от HwndHost и реализует BuildWindowCore и DestroyWindowCore, а затем выполните HwndHost и поместить его в ваше приложение WPF.

Если ваша логика Win32 уже упакована в качестве элемента управления, Реализация BuildWindowCore - это не более чем вызов CreateWindow.

тогда, если у вас есть конкретная проблема, попросите здесь в SO, и люди помогут вам в определенных точках.