在MFC程式中顯示WPF視窗

2021-08-30 14:32:27 字數 960 閱讀 8760

最近想要在原有系統(基於mfc,非託管)中加入wpf的介面。搜尋了一段時間,發現大部分文章都是在談託管程式c++中呼叫wpf,還是不太適合我的需要。於是自己嘗試著從本機c++的mfc程式中呼叫wpf,使用c# 實現乙個com元件作為中間層。目標是在mfc程式中彈出乙個wpf視窗。

新增乙個window,命名為mainwindow,實現具體的介面。

定義com介面(參考用c#建立com物件、c++呼叫c# 的com)

新增using system.runtime.interopservices;

定義介面:showmainwindow.

**如下:

[guid(

"b5229c49-f49d-4a2c-a9f5-ca1249de3890")]

//使用工具生成的guid

public

inte***ce

ui_inte***ce

生成強名稱檔案

sn –k ui_inte***ce.snk

在assemblyinfo.cs中,新增下面一行

[assembly: assemblykeyfile("ui_inte***ce.snk")]

將dll加入gac

gacutil /i uiinte***ce.dll
註冊
regasm uiinte***ce.dll
引用com元件
#import 「\uiinte***ce.tlb"
新增呼叫**:

coinitialize(null);

ui_inte***ceptruiinte***ceptr;

hresulthr

=uiinte***ceptr.createinstance(__uuidof(ui_class));

if(hr

==s_ok)

couninitialize(); 

在MFC程式中新增全屏顯示功能

這是工作室為實現全屏顯示所髮集的乙個演示程式。你可以通過選擇全屏顯示選單選項時看到相應的效果。這段 包括兩個內容 全屏顯示,浮動工具條 用於恢復操作 下圖便是全屏狀態和用於切換的浮動工具條 具體實現步驟 以下的 被新增到cmainframe類中。這裡是使用到的四個訊息以及他們的簡要說明 1 onvi...

在MFC程式中新增全屏顯示功能

這是工作室為實現全屏顯示所髮集的乙個演示程式。你可以通過選擇全屏顯示選單選項時看到相應的效果。這段 包括兩個內容 全屏顯示,浮動工具條 用於恢復操作 以下的 被新增到cmainframe類中。這裡是使用到的四個訊息以及他們的簡要說明 1 onviewfullscreen 全屏顯示選單項的控制代碼。2...

在MFC中顯示cv Mat

void bitmattownd cwnd pwnd,cv mat img,crect roi else if ichannels 3 else if bitbuffer null bitmapinfo bitmapinfo bitbuffer bitmapinfo bmiheader.bisize...