在MFC中集成RAD .NET框架
2007-06-21 21:36:15 来源:WEB开发网核心提示: (图4:MFC框架中ActiveX控件的创建)我们知道,MFC是通过COleControlSite类创建ActiveX控件的,在MFC中集成RAD .NET框架(4),由于针对用于ActiveX控件的COleControlSite类不适用于.NET控件,因此必须重新派生一个新类CWFCon
(图4:MFC框架中ActiveX控件的创建)
我们知道,MFC是通过COleControlSite类创建ActiveX控件的,由于针对用于ActiveX控件的COleControlSite类不适用于.NET控件,因此必须重新派生一个新类CWFControlSite来提供必要的支持,通过一个CWFControlWrapper类将一个.NET控件包装在一个CWnd窗体中,并将包装后的窗体“安置”在CWFControlSite内。CWFControlWrapper类代码如下:
class CWFControlWrapper : public CWnd
{
public:
CWFControlWrapper();
virtual ~CWFControlWrapper(void);
IUnknown *pUnkControl;
IUnknown *GetManagedControl()
{
return pUnkControl;
}
void SetControlSite(COleControlSite *pSite)
{
m_pCtrlSite = pSite;
}
};
下一步,要设计一个通用的CUserCtrlView类(从CView类派生),使得在CWFControlSite中指定的.NET控件可以像在COleControlSite中指定的ActiveX控件一样显示给用户。正象每个ActiveX控件必需用一个CWnd对象进行创建一样,一个支持.NET控件的CView类需要一个对应的CWnd对象,CWFControlWrapper就是针对这个目的设计的,通过CWFControlWrapper对象,MFC程序可以得到.NET对象对应的IUnknow、IDispatch。稍后我们介绍CUserCtrlView类的具体设计和使用方法。
(图5:MFC框架中.NET控件的创建)
更多精彩
赞助商链接