在我的其它博客中,介紹了mfc dll如何調用模式對話框與非模式對話框的實現過程。接下來介紹在mfc dll中如果包含有ActiveX控件該如何調用了。
我們還是在mfc dll的對話框裏添加一個ActiveX控件,例如添加一個webbrowser控件,設置控件默認加載的網頁。
然後我們生成這個mfc dll動態庫,然後調用。
在調用的時候發現無法彈出mfc dll裏的這個對話框。
這是因爲mfc dll與mfc acitvex在創建對話框時,如果對話框裏包含ActiveX控件,需要設置幾行代碼。回到mfc dll的工程裏,在MFC_dll.cpp的初始化函數InitInstance()中添加如下代碼:
//下面這些代碼爲添加對mfc dll中子對話框裏ActiveX控件的支持
AfxEnableControlContainer();
if (!AfxOleInit())
{
return FALSE;
}
//初始化控件環境
AfxEnableControlContainer();
CoInitialize(NULL);
然後重新生成mfc dll動態庫,接着在調用工程裏進行調用。這次就可以成功顯示mfc dll動態庫對話框裏webbrowser控件裏的網頁了。