Sam*_*Sam 4 c++ wpf winapi interop
我有一个遗留的c ++ win32应用程序,并使用wpf windows扩展它确实有效.
但我想要做的是将WPF窗口作为主窗口,而不仅仅是任何旧窗口而是棱镜外壳窗口.
所以对于我的遗留c ++项目,我想添加一个Bootstrapper,shell窗口,MEF加载器,所有的铃声和口哨声.在那里,我想放置一些命令,在需要时打开传统的win32窗口.
现在在win32应用程序中打开WPF窗口很简单,我只需要使用
System::Windows::Forms::Integration::ElementHost::EnableModelessKeyboardInterop(mywindow);
Run Code Online (Sandbox Code Playgroud)
但是如何在WPF应用程序中打开win32窗口?win32窗口需要一个消息泵循环,但我在哪里放这个:
MSG msg;
while (GetMessage(&msg, NULL, NULL, NULL))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
Run Code Online (Sandbox Code Playgroud)
我可以为循环创建任何新线程吗?或者是否也有这样的互操作助手?
或者我的想法是疯了吗?
你见过这个吗?:WPF如何使用HWND
我还建议阅读: 演练:在WPF中托管Win32控件
正如您将看到的那样,有一个包含控件的主机窗口.主机窗口还可以包含自绘内容或任何您想要的内容.
你必须从HwndHost覆盖WndProc.也许可以从那里转发到您的本地处理程序.还没有那样做.
正如@Tergiver指出的那样,不需要消息泵.
| 归档时间: |
|
| 查看次数: |
3353 次 |
| 最近记录: |