要实现在DLL库中创建MFC的窗口,必须创建一个扩展DLL,Extension Dll
在DLL中配置好窗口资源,如:IDD_DIALOG这种模板资源。
在外部调用的时候只需要通过一个接口来创建窗体。
例子代码:
class __declspec(dllexport) CIeDlg : public CDialog
{
//内容省略
............
}
CIeDlg为外部需要调用的窗体类。
在DLL中创建一个函数接口,创建该窗体
CIeDlg *CreateIeDlg(HWND hWndParent)
{
CIeDlg * g_MainDlg=new CIeDlg ();
CWnd *pWndParent = CWnd::FromHandle(hWndParent);
g_MainDlg->Create(IDD_IEDLG,pWndParent);
g_MainDlg->ShowWindow(SW_SHOW);
return g_MainDlg;
}
外部直接调用CreateIeDlg来创建窗口