码迷,mamicode.com
首页 > 其他好文 > 详细

将FormView视图封装到DLL中

时间:2018-03-19 20:56:15      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:View   视图   DLL   

在多文档编程框架中,要显示多个视图,如果将视图类封装到DLL中,调用时将视图嵌入到主框架中,能实现模块编程。

(1)创建一个MFC的控展DLL工程,在资源中添加一个FormView窗口,并创建相应的类CDeviceManageView。添导出函数如下:

extern "C" AFX_EXT_API UINT Create(CRuntimeClass * * view,CWnd * p)
{
	new CDynLinkLibrary(DeviceManageDLL);
	*view = RUNTIME_CLASS(CDeviceManageView);
	return(0);
}

(2)调用DLL函数创建视图

HINSTANCE hDllInst = AfxLoadLibrary(CScale3DCGlobal::GetApplicationPath() 
                     + _T("\\DeviceManage.DLL"));
if (hDllInst)
{
	typedef UINT(*MYFUNC)(CRuntimeClass**,CWnd *parent);
	MYFUNC CreateViewUI = NULL;
	CreateViewUI = (MYFUNC)GetProcAddress(hDllInst, "Create");
	if (CreateViewUI)
	{
		CRuntimeClass* pNewViewClass;
		CreateViewUI(&pNewViewClass,AfxGetMainWnd());
		ASSERT(pNewViewClass);

		CCreateContext context;
		context.m_pNewViewClass = pNewViewClass;
		pChildFrame = new CScale3DCChildFrame;
		if (!pChildFrame->LoadFrame(32000,//与DLL中的资源ID一致
			WS_OVERLAPPEDWINDOW | FWS_PREFIXTITLE, AfxGetMainWnd(), &context))
			return;
			pChildFrame->SetWindowText(_T("通信连接"));
			pChildFrame->InitialUpdateFrame(NULL, TRUE);
		}
		//FreeLibrary(hDllInst);
	}
}


将FormView视图封装到DLL中

标签:View   视图   DLL   

原文地址:http://blog.51cto.com/9233403/2088697

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!