设为首页 加入收藏

TOP

经典与现代的结合:在MFC中集成RAD .NET框架(二)
2014-11-23 20:25:13 来源: 作者: 【 】 浏览:9
Tags:经典 现代 结合 MFC 集成 RAD .NET 框架
NET控件可以像在COleControlSite中指定的ActiveX控件一样显示给用户。正象每个ActiveX控件必需用一个CWnd对象进行创建一样,一个支持.NET控件的CView类需要一个对应的CWnd对象,CWFControlWrapper就是针对这个目的设计的,通过CWFControlWrapper对象,MFC程序可以得到.NET对象对应的IUnknow、IDispatch。稍后我们介绍CUserCtrlView类的具体设计和使用方法。

artradnet_005.jpg

(图5:MFC框架中.NET控件的创建)

NET控件的消息处理

一般而言,控件的对话框消息处理是一个极为关键的问题,在网上能找到的MFC中宿主控件的解决方法中,均没有实现.NET控件的对话框消息处理,一个明显的特征是不能处理“Tab”键消息。为此,我们重载了CUserCtrlView的PreTranslateMessage函数:

BOOL CUserCtrlView::PreTranslateMessage(MSG *pMsg) { BOOL bRet = FALSE; if(m_Control.pUnkControl != NULL) { CComQIPtr spInPlace(m_Control.pUnkControl); if(spInPlace) bRet =(S_OK == spInPlace->TranslateAccelerator(pMsg)) TRUE : FALSE; } if(CView::PreTranslateMessage(pMsg)) return TRUE; CFrameWnd *pFrameWnd = GetTopLevelFrame(

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇MFC中用正则表达式进行有效性验证 下一篇COM 组件设计与应用(一)起源及..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: