MFC开发ActiveX控件全过程

MFC开发ActiveX控件全过程

ID:39466185

大小:91.00 KB

页数:10页

时间:2019-07-04

MFC开发ActiveX控件全过程_第1页
MFC开发ActiveX控件全过程_第2页
MFC开发ActiveX控件全过程_第3页
MFC开发ActiveX控件全过程_第4页
MFC开发ActiveX控件全过程_第5页
资源描述:

《MFC开发ActiveX控件全过程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、使用MFC开发ActiveX控件全过程VisualC++是开发ActiveX控件的强大工具,它的特点是开发周期短、便于使用,因此它已经成为开发ActiveX控件的主要工具之一。VisualC++集成开发环境,使用了微软自己的类库MFC,MFC对开发ActiveX控件提供了全面的支持,本文讲述的过程均在VisualC++6.0(以下简称VC)中实现。1、 创建工程:对于使用过VC的人,可以很容易地创建一个开发ActiveX控件的工程,没有使用过VC的人,按照下面的操作步骤,也可以很快创建一个同样的工程出来。第一步:“File”—>“N

2、ew”—>“(Projects)MFCActiveXControlWizard”,在“ProjectName”中输入合适的工程名(以test为例),在“Location”中选择工程文件存放路径,然后,“OK”进入下一步;第二步:选择你想在这个工程中生成的ActiveX控件的个数(至少一个),其余选项决定是否生成一些辅助文件,通常按照默认设置即可,“Next”进入下一步;第三步:编辑你的工程中各个类和文件的名称,配置一些辅助选项,可以全部选择默认设置,“Finish”进入下一步;第四步:展示向导为你的工程生成的各种配置信息,“Canc

3、el”重新设置不满意的选项,“OK”结束工程的创建。2、 绘制控件:MFC将对ActiveX控件的支持封装在COleControl类中,所有ActiveX控件均从这个类派生。绘制控件的全部操作则集中在一个虚函数中—OnDraw(),其默认实现如下:voidCTestCtrl::OnDraw(CDC*pdc,constCRect&rcBounds,constCRect&rcInvalid){//TODO:Replacethefollowingcodewithyourowndrawingcode.pdc->FillRect(rcBoun

4、ds,CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));pdc->Ellipse(rcBounds);}可以看到,OnDraw()函数的默认实现是在矩形rcBounds中绘制一个椭圆,通过改写OnDraw()函数中的内容,就可以绘制自己想要的控件了。需要注意的一点,控件的绘制被限制在矩形rcBounds中,绘制范围不能超出这个矩形。3、 添加属性:ActiveX控件提供了三种类型的属性供用户选择:公共属性、具有通知特性的属性和Get/Set类型的属性。下面依次对三种类型

5、属性的添加、初始化、新属性值的获取和属性的永久保存,分别进行介绍。三种类型的属性的添加,都遵照相同的步骤:“View”—>“ClassWizard”—>“(Automation)AddProperty”—>“AddProperty”对话框。注意,“ClassName”中应是你想添加属性的控件类的名称(如CTestCtrl)。㈠.公共属性:COleControl类提供了九种常用的属性作为公共属性,我们以“Caption”为例。在“AddProperty”对话框中的“ExternalName”选择“Caption”,“Implement

6、ation”中选中“Stock”,然后“OK”即向控件添加了Caption公共属性。COleControl类为每一个公共属性都提供了默认的设置和获取成员函数,对于Caption属性有SetText()和GetText()(或InternalGetText())。COleControl类在函数DoPropExchange()中对于公共属性都有默认的初始化,但是我们可以在成员函数OnResetState()中,为公共属性设置我们自己想要的初始值。Caption默认的初始值为空,可以使用成员函数SetText(LPCTSTRpszText

7、),为其设置任意的字符串。我们可以通过调用函数GetText()或InternalGetText()获得当前的Caption属性值。需要注意的是,对于GetText()函数,在调用之后,需要调用SysFreeString()函数以释放资源。此外,GetText()函数的返回值为BSTR类型,经常需要与大家常用的CString字符串类型进行变换:BSTR可以直接赋值CString,也可以调用API函数::SysAllocString(Cstring);但是将CString转换成BSTR,必须调用函数CString::AllocSysS

8、tring()。InternalGetText()函数则无上述烦恼。对于公共属性的永久保存,在COleControl类的成员函数DoPropExchange()有默认实现,就无需大家费心了。㈡.具有通知特性的属性:在“AddPrope

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。