gpt4 book ai didi

c++ - 在 WPF 中托管 native 控件

转载 作者:太空宇宙 更新时间:2023-11-04 13:50:46 28 4
gpt4 key购买 nike

我有一个用 C++ 编写并使用 DirectX 11 的 native 控件,我想将其嵌入到 WPF 应用程序中。目前该控件托管在 Windows 应用商店应用程序中,并且运行良好。我提到这一点是为了防止商店应用程序兼容性很重要。

基于 Hosting Win32 Content in WPF ,我的理解是,因为 WPF 执行自己的组合,并且具有单个窗口句柄,核心复杂性是为 native 控件提供另一个窗口句柄。因此,解决方案是向 WPF 页面添加 WindowsFormHost 控件或派生自 HwndHost 的控件,并以某种方式将 WPF 控件与 native 控件相关联。

我浏览了 Hosting a Win32 Control in WPF walkthrough on MSDN .但是,我的控件没有像 ListBox(示例中使用的控件)那样在操作系统中注册。所以,我不能将它作为参数传递给 CreateWindowEx。如何关联自己的控件?我是否创建 WindowsFormsHost 并调用 SetParent(myControlsHandle, windowsFormsHost.Handle)?还是创建 WPF Border 并将其 Child 属性设置为 HwndHost 实例?

还有其他与 WPF 中的 native 控件相关的问题(herehere,虽然后者是关于应用程序,而不是控件),但没有一个解决这个问题。

我研究了一种不同的方法,其中 WPF 控件与 native 控件共享 D3DImage,但这需要 DirectX9EX,而我的控件是用 Dx11 编写的。

最佳答案

在 msdn.hope 中找到一篇文章,希望对您有所帮助。 http://msdn.microsoft.com/en-us/library/ms742522(v=vs.110).aspx

关于c++ - 在 WPF 中托管 native 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23504180/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com