Windows程序设计教程 第2版 教学课件 作者 王秀梅 第3章Windows应用程序的面向对象.ppt

Windows程序设计教程 第2版 教学课件 作者 王秀梅 第3章Windows应用程序的面向对象.ppt

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在早期的编程生涯中,程序员采用C语言和Windows API函数进行Windows程序设计。 但采用这种方式进行程序开发,使得开发过程艰苦、乏味。 随着编程技术的不断发展,Windows编程采用了面向对象的程序设计思想(Object Oriented Programming,OOP)。 这种思想集抽象性、封装性、集成性和多态性于一体,提高了编程的效率。 下面对Windows应用程序中的面向对象思想进行介绍。 应用程序主函数中类的封装 3.1 派生类 3.2 3.1 应用程序主函数中类的封装 在2.3节中,通过对Windows应用程序结构进行分析可以得知,主函数的任务是创建并显示窗口和实现消息循环。 从面向对象的思想进行分析,为了形成程序框架,应该声明两个类:应用程序类和窗口类。 3.1.1 窗口类的声明 在窗口类中,应该实现窗口类的设计、窗口类的注册、窗口的创建和显示等功能。 上述功能是窗口类的成员函数,为了辅助这些成员函数,还应该有一个数据成员——HWND类型的窗口句柄。 3.1.2 应用程序类的声明 如果把主函数中的整个函数体作为一个对象,并把它叫做应用程序,则还应该声明一个应用程序类,并命名为CWinApp。 在CWinApp类中,主要完成两个功能:一是调用成员函数InitInstance()来完成窗口的设计、注册、创建与显示工作,二是调用成员函数Run()来实现消息循环。 3.1.3 主函数封装后的程序 对窗口类和应用程序类进行封装后,再来设计Windows应用程序就显得十分简单了。 图3.1 程序sample0301的运行结果 3.2 派 生 类 在3.2节中,将窗口类CFrameWnd和应用程序类CWinApp封装在一个类库中,使用起来灵活了许多。 但如果需要对应用程序进行个性化设计,就不是那么容易了。 例如,需要改变窗口的背景颜色,此时就需要修改系统提供的窗口函数。 为了解决这个问题,可以引用C++类的继承性和多态性。 程序员可以通过设计派生类来得到自己想要的应用程序窗口。 下面对派生类进行详细介绍。 3.2.1 应用程序类的派生类 应用程序对各个类进行了封装,为了方便程序的设计,需要对其进行派生操作。 为了让派生类能更好地修改原有的属性,在基类中要将一些成员函数设置为虚函数。 这样,在派生类中,可以重写虚函数满足特别的要求。 图3.2 程序sample0302的运行结果 3.2.2 窗口类的派生类 与应用程序类类似,窗口类也可以拥有自己的派生类。 读者可以参照创建应用程序类的派生类的方法为窗口类创建派生类,本书在此就不再详细讲解。 在创建窗口类的派生类时,有一个问题需要注意。 由于在应用程序类CWinApp中定义的窗体对象m_pMainWnd是CFrameWnd类型的,而现在需要使用CFrameWnd类的派生类来构造此窗体对象。 也就是说,在CWinApp类的Instance()函数中,先构造一个CFrameWnd类的派生类的对象,然后将它赋值给m_pMainWnd。 图3.3 程序sample0303的运行结果 小  结 本章主要介绍了Windows应用程序的面向对象思想。 面向对象思想集抽象性、封装性、集成性和多态性于一体,提高了编程的效率。 本章内容包括窗口类的声明、应用程序类的声明、主函数封装后的程序、应用程序类的派生类和窗口类的派生类。 这些内容有些抽象,不易理解,所以请读者重点掌握。 第4章将要学习MFC应用程序框架。 上机指导 实验一:声明窗口类实例 实验内容 声明一个窗口类,并定义相关的成员函数。 实验目的 掌握窗口类的实现过程。 在窗口类中,应该实现窗口类的设计、窗口类的注册、窗口的创建和显示等功能。 实现思路 在3.1.1节中介绍了如何声明一个窗口类,参照该节内容即可。 实验二:声明应用程序类的派生类 实验内容 声明一个应用程序类的派生类,并定义相关的成员函数。 实验目的 掌握应用程序类的实现过程。

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档