【组件】基于MFC开发ActiveX控件--笑脸娃娃

0.前期准备
vs2015项目选定MFC,联机下载资源安装成功。(vs2010需要手动解压vs目录下的Simples安装包,ActiveX容器也是解压得到的)
建立对话框(忘了,哭):
项目名-》右击-》资源—》Dialog->添加资源,选对话框
在对话框的空白区域,双击,进入“MFC类向导”
1.进入正文

实验课程 组件技术 实验日期 2017.10.29 同实验者
实验项目 基于MFC的ActiveX控件开发—笑脸娃娃
一、 实验目的
1. 用MFC实现ActiveX控制
2. 用MFC实现ActiveX控制包容器
二、 实验原理
MFC提供了全面的ActiveX控制开发支持,从最初的MFCActiveXControlWizard开始,从ClassWizard对ActiveX控制的属性和方法,事件的支持。除了最基本的ActiveX控制功能,MFC还支持ActiveX控制的属性页特性,事件,属性变化通知,和许可证检查。当然,因为ActiveX控制的基本类COleControl派生于CWnd类,所以ActiveX控制也具备普通窗口的特性,包括消息管理机制,窗口操作,拖放和剪贴板等。
三、 实验步骤
1. 例子程序Smile
1. 创建控件项目: MFC ActiveX控件Smile
2. 修改类
Smile包含五个类:①CSmileApp类是工程的应用类。直接由AppWizard生成,通常不需要特殊处理。②CSmileCtrl:控制的对象类,是主要工作类,可以指定ActiveX控制的绘制代码(OnDraw成员函数)、初始状态(OnResetState成员函数)、属性交换函数(DoPropExchange成员函数)等;还可以利用MFC的消息映射宏处理各种应用消息;指定ActiveX控制的属性页,也可以利用ColeControl对出接口的支持激发各种事件。③CSmileCtrl是Smile控制的属性页对象。是一个独立的COM对象,它与一个对话框资源相联系,也与一组属性相联系。设置属性为Caption和Sad。④CSmileColorPropPage类的基类为CColorPropPage,它是一个内置的属性页对象,提供Smile控制的前景色和背景颜色设置功能。⑤CSmileFontProPage类的基类为CFontPropPage,它也是一个内置属性页对象,提供了Smile控制的字体属性设置功能。
3. Smile控制的五个标准属性(库存属性):“BackColor”、“Font”、“ForeColor”、“Caotion”和“BorderStyle”。一个自定义属性“Sad”;支持标准方法“AboutBox”和自定义方法“Beep”及“Wink”;它还支持两个事件,当用户在控制窗口的脸外面单击鼠标时,控制激发Outside事件。
2. 用MFC实现ActiveX控制包容器—Smiley例子程序
Smiley例子程序包含AppWizard生成的三个类CSmileyApp,CSmileDlg,CAboutDlg以及Smile控制的封装类CSmilemileCtl.
包容器对ActiveX控制事件的支持通过事件接收器映射表,如果我们通过ClassWizard或者对话框编辑器的弹出菜单中选择Event命令增加了事件控制函数之后,在CSmileDlg的实现文件中加入映射表。
CSmileyDlg类的两个事件控制函数,分别调用ActiveX控制的“Wink”方法。
在Smiley程序的对话框中有一个检查框“Sad”以控制Smile控制的Sad表情属性。
四、 实验记录
用VS开发控件有优势,也有劣势,更大的开发环境可能意为着功能更为强大,但是也让操作更为繁琐。VC则更为小巧简洁。在网络寻找资源和在电子书籍中检索相关资源的时候,感觉基于MFC的ActiveX控件开发并不是速成的一个学习过程,它需要我们花更多的精力去学习,更需要恒心和毅力去努力完成每一个功能的实现。对于目前的自己来说,还有很长的路要走。
五、 心得体会
组件技术在为期八周的时间内结束了,包括上课和16课时的实验,在第一节课的时候,老师向我们强调学习组件的思想,其次是技术。课程结束的时候自己记住了很多概念以及它们的代码实现,例如COM对象与接口,COM实现,IUnknown接口以及特性,重用模型,包容和聚合,列集散集,代理存根。在接触MFC的时候,感觉自己只是略懂一点,组件包括的内容实在太多太多。
在本次实验中也有接口的出现,也有之前学习的东西的重新使用,在MFC的基础上ActiveX控件的开发难度已经大大降低,相信以后如果有时间,我们肯定能学的更好。
六、 参考资料:
《COM原理与应用》及其代码;
《Visual C++实践与提高》;
CSDN和博客园博客“MFC的基础上ActiveX控件的开发”
七、 实验截图
smileSADSmile程序
Smiley程序
双击smile中的makefile文件进入浏览器(右上角的笑脸).jpg()
双击smile中的makefile文件进入浏览器(右上角的笑脸).jpg我的小伙伴找到的,厉害了!
八、 我在VS里发现的笑脸,莫名的悲伤。加油!
彩蛋

猜你喜欢

转载自blog.csdn.net/qq_35824338/article/details/78388761
今日推荐