- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
试验三面向对象程序设计实验 ——一个简单的可复用时钟控件 本实验的开发环境 使用C++语言实现 使用VC++6.0集成开发环境开发 使用MFC应用程序开发框架 MFC版本简介 MFC全称Microsoft Foundation Classes. 1989年微软公司成立Application Framework技术团队,开发C++面向对象工具给Windows应用程序开发人员使用。这个小组即AFX小组,就是他们,开始了MFC的开发历程。 微软公司于1992年4月推出C/C++7.0产品时,初次向世人介绍了MFC 1.0,其32位版本也在1992年7月随着Win32 SDK推出。 Visual C++1.0(也就是C/C++8.0)搭配MFC 2.0于1993年3月推出。同年8月推出在Windows NT上的Visual C++1.1 for Windows NT,搭配的是MFC 2.1。 微软在1993年12月又推出了16为的Visual C++ 1.5, 搭配的是MFC 2.5。 1994年9月,微软推出Visual C++ 2.0,搭配MFC 3.0。 1995年1月,微软推在增加了MAPI和WinSock支持的基础上,推出MFC 3.1。 1995年7月,MFC有了3.2版,这是一个小的改版。 然后就是1995年9月的32位版MFC 4.0。这个版本有了相当大的改进。 1996年上半年又有了MFC4.1…… 时至今日MFC在Visual C++ 7.0中已经到了7.0版本。 我们常用的Visual C++6.0使用的是MFC 4.2版本。 微软正不断地为“为什么要使用MFC”加上各式各样地强烈你有,并强烈导引它成为Windows程序设计的C++标准界面。正如我们所看到的,越来越多的MFC程序出现了并继续在产生。 试验设计目标 完成一个可重用的C++类,可以通过该类实现一个简单的模拟时钟 编写一个简单的MFC程序测试验证这个时钟控件类 关于这个时钟控件,如果按照课件继续完善下去,请将他做得更好更强大。比如说:可以考虑为时钟控件的各项设置(如颜色)提供外部接口,供CClockEx的使用者调用,可以考虑丰富背景绘制,加入背景图片设置,在刻度上标上数字,为指针加上阴影效果,在时钟上显示日期等。有兴趣的同学有空不妨试试。 应用程序框架设计过程(仅供参考) 打开VC++6.0,新建一个MFC工程,输入工程名,选择“MFC AppWizard”如图所示,然后点击OK。 为简单起见,这里选择“Dialog based”程序,然后可以直接选择finish了。 在类视图的工程名上右键单击,选择New Class(如下图所示)来建立一个新类。 我们可以从CStatic类(静态控件类)派生出类CClockEx来实现时钟控件类,这样,就可以继承MFC静态控件的很多已经具备的功能和特点。在建立新类的对话框中,按下图输入。 按Ctrl+W调出Class Wizard,在class name中选择刚才建立的新类CClockEx,然后 重载虚函数PreSubClassWindow,对时钟控件的基本初始化工作将在该函数中进行。 添加消息响应WM_PAINT,我们必须用自己完成时钟的绘制工作。 添加消息响应WM_SIZE,重载该消息响应以便我们的时钟控件能够自动适应其大小的变化。 为了时钟能够走动,我们得定时刷新时钟控件让它走动,还得添加WM_TIMER的消息响应。最终效果如下图所示。 到目前为止,时钟控件的轮廓和已经有了,下面考虑时钟绘制的具体实现。 一个时钟大致可由时钟背景、时针、分针、秒针四个部分构成。 以上的时钟四个部分可是看作四个不同的对象,可以考虑建立类CClockBackground(背景)CClockHourHand(时针)、CClockMinHand(分针)、CClockSecHand(秒针)来分别实现。(此处为了意义明确,类名都比较长) 这四个类有它们的共同点,譬如都有自己的绘图函数,如果要具体能够设置颜色,它们都应该有自己的绘图颜色,同样应该有颜色设置函数,此外都有绘图区域和区域设置函数等等。因此,可以为它们的共性建立一个基类,此处命名为CClockElement(时钟元素)。 下面逐步实现各个类,首先实现各个组成类的基类——CClockElement。同样,在ClassView的工程名上面点右键,选择New Class,在ClassType里面选择Genenric Class,类CClockElement不需要从其它类派生,所以Base Class可以不填,效果如下图所示。 下面对类CClockElement的源代码进行编写。 因为在后面的绘图中需要用到sin和cos这两个数学计算公式,因此需包含头文件MATH.H以便使用数学函数
文档评论(0)