面向对象的Windows应用程序设计 基于Vindows API的程序设计是一种基于 过程抽象的程序设计范式。 通过调用API函数编写程序的粒度太细、太 繁琐,开发效率不高 如何以更大粒度的程序元素(如,对象)来 开发Windows应用程序? o Microsoft的MFC类库提供了以面向对象范式进 行应用程序开发的支持 当然,还有其他更好的做法!
面向对象的Windows应用程序设计 ◼ 基于Windows API的程序设计是一种基于 过程抽象的程序设计范式。 ◼ 通过调用API函数编写程序的粒度太细、太 繁琐,开发效率不高。 ◼ 如何以更大粒度的程序元素(如,对象)来 开发Windows应用程序? • Microsoft的MFC类库提供了以面向对象范式进 行应用程序开发的支持。 • 当然,还有其他更好的做法!
Vindows应用程序中的对象 窗口对象 ● 显示程序的处理数据 处理Windows的消息、实现与用户的交互 。窗口对象之间可以存在聚集关系 文档对象 管理在各个窗口中显示和处理的数据 文档对象与窗口对象之间可以存在着一对多的关系 应用程序对象 管理属于它的窗口对象和文档对象 ● 实现消息循环 与它的窗口对象及文档对象之间构成了聚集关系
Windows应用程序中的对象 ◼ 窗口对象 • 显示程序的处理数据 • 处理Windows的消息、实现与用户的交互 • 窗口对象之间可以存在聚集关系 ◼ 文档对象 • 管理在各个窗口中显示和处理的数据 • 文档对象与窗口对象之间可以存在着一对多的关系 ◼ 应用程序对象 • 管理属于它的窗口对象和文档对象 • 实现消息循环 • 与它的窗口对象及文档对象之间构成了聚集关系 ◼
ain Sub2 回x 窗口对象: 文件()编辑(但) 查看()窗口() 帮助(但) 0日多助B昌? Sub1 -回x 解Sub2 -▣x☒ 就绪 文档对象: 注册窗口类 应用程序对象: 创建主窗口 消息循环
文档对象: 窗口对象: 应用程序对象: 注册窗口类 创建主窗口 消息循环
■对于每一个Windows应用 ·应用程序对象和主窗口对象只有一个 子窗口对象和文档对象则可以有多个,它们在程序 运行的不同时刻创建。 例如,对于一个多文档的Windows应用程序, 0 在程序开始运行时,首先创建应用程序对象; 由应用程序对象来创建主窗口对象: 在程序运行过程中,用户选择主窗口菜单项“文件 打开”,创建一个文档对象以及相应的子窗口对 象
◼ 对于每一个Windows应用 • 应用程序对象和主窗口对象只有一个 • 子窗口对象和文档对象则可以有多个,它们在程序 运行的不同时刻创建。 ◼ 例如,对于一个多文档的Windows应用程序, • 在程序开始运行时,首先创建应用程序对象; • 由应用程序对象来创建主窗口对象; • 在程序运行过程中,用户选择主窗口菜单项“文件 |打开”,创建一个文档对象以及相应的子窗口对 象
Microsoft Foundation Class library (MFC,微软基础类库) MFC是微软公司提供的支持以面向对象范 式进行Vindows应用程序开发的一个基础 类库(Microsoft Foundation Class library) C提供了一些类来描述应用中对象的基本功 能,应用程序可以通过继承这些类来实现各自 的特殊功能 MFC还提供了一种基于“文档一视”结构的应 用框架
Microsoft Foundation Class library (MFC,微软基础类库) ◼ MFC是微软公司提供的支持以面向对象范 式进行Windows应用程序开发的一个基础 类库(Microsoft Foundation Class library)。 • MFC提供了一些类来描述应用中对象的基本功 能,应用程序可以通过继承这些类来实现各自 的特殊功能。 • MFC还提供了一种基于“文档-视”结构的应 用框架