[英]Hosting win32 windows in a WPF app?
我有一個遺留的c ++ win32應用程序,並使用wpf windows擴展它確實有效。
但我想要做的是將WPF窗口作為主窗口,而不僅僅是任何舊窗口而是棱鏡外殼窗口。
所以對於我的遺留c ++項目,我想添加一個Bootstrapper,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如何使用HWND
我還建議閱讀: 演練:在WPF中托管Win32控件
正如您將看到的那樣,有一個包含控件的主機窗口。 主機窗口還可以包含自繪內容或任何您想要的內容。
你必須從HwndHost覆蓋WndProc。 也許可以從那里轉發到您的本地處理程序。 還沒有那樣做。
正如@Tergiver指出的那樣,不需要消息泵。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.