【发布时间】:2010-11-24 15:25:43
【问题描述】:
我有一个旧的 c++ win32 应用程序,使用 wpf windows 扩展它确实有效。
但我想做的是有一个 WPF 窗口作为主窗口,而不仅仅是任何旧窗口,而是一个 prism shell 窗口。
因此,我想在我的遗留 c++ 项目中添加一个引导程序、shell 窗口、MEF 加载程序,以及所有的花里胡哨。我想在其中放置一些命令,以便在需要时打开旧版 win32 窗口。
现在在win32应用中打开WPF窗口很简单,我只需要使用
System::Windows::Forms::Integration::ElementHost::EnableModelessKeyboardInterop(mywindow);
但是如何在 WPF 应用程序中打开 win32 窗口? win32 窗口需要一个消息泵循环,但我应该把它放在哪里:
MSG msg;
while (GetMessage(&msg, NULL, NULL, NULL))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
我可以为循环创建任何新线程吗?或者是否也有一个互操作助手?
还是我的想法很疯狂?
【问题讨论】:
-
也许是时候翻转开关了。将 WPF 应用程序作为主要应用程序。