将 WPF 窗口添加到 Win32 应用程序
Posted
技术标签:
【中文标题】将 WPF 窗口添加到 Win32 应用程序【英文标题】:Adding WPF window to Win32 application 【发布时间】:2011-04-09 04:07:49 【问题描述】:我有一个基于混合了 MFC、WTL、user32 和其他一些技术的带有 GUI 的 win32 应用程序怪物。我需要添加另一个***窗口,我想给 WPF 一个机会。
您能帮我确定在 win32 应用程序中托管 WPF 窗口所需的步骤吗?欢迎提供详细信息。
【问题讨论】:
【参考方案1】:很抱歉给出了陈词滥调的答案,但我无法比 MSDN 上的解释更好地解释它: Hosting WPF Content in a Microsoft Win32 Window,Walkthrough: Hosting a WPF Clock in Win32。您可能还对 MSDN Code Gallery 上的 WPF 文档示例感兴趣,或者查看他们的 mind-mapped version。
【讨论】:
【参考方案2】:请记住,如果它是您所追求的***窗口(而不是嵌入在另一个窗口中的窗口),您可以简单地从托管 C++ 创建一个新的 Window 派生 WPF 窗口。
IE,或者 1) 创建一个 C++/CLI 库来引用您的 WPF 库并从您的非托管代码中调用它或 2) 添加 /clr 库设置(不推荐,由于性能影响)并添加对您的WPF 库。然后只需调用:
#include <vcclr.h>
gcroot<MyWindow^> newWin = gcnew MyWindow();
newWin->Show();
【讨论】:
以上是关于将 WPF 窗口添加到 Win32 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
Win32 使用 SetCurrentProcessExplicitAppUserModelID 关联多个进程 在任务栏合并 WPF 多进程窗口