Windows最初由Microsoft公司在年月宣布年月推出了第一公开发行版本即版此后两年版进行了几次修改以满足国际市场的需求并增减了一些显示器和打印机的驱动程序年月发行的Windows 版在用户界面上做了些改进例如重叠式窗口的引入还增强了键盘和鼠标接口特别是增强了选单和对话框的功能...(略) 用户界面的构件 窗口 窗口是屏幕上与一个应用程序相关的矩形区域它是用户与产生该窗口的应用程序之间的可视界面对应用程序来说窗口是应用程序控制下的屏幕上的一个矩形区域应用程序创建并控制窗口的所有方面当用户启动一个应用程序时一个窗口就被创建每当用户操作窗口中的对象时程序就有所响应 边框 绝大多数窗口都有一个环绕着它的边框边框不仅作为窗口的边界它也用来指明窗口的状态即窗口是否是一个活动窗口当我们将鼠标指针放在边框上按下鼠标键并移动鼠标时就可以改变窗口的大小 标题栏 标题栏位于窗口的顶部其中显示的文本信息用于标注程序一般是应用程序的名字这便于用户知道哪个应用程序正在运行标题栏的颜色反映一个窗口是否是一个活动窗口 控制框 控制框是每个窗口左上方的小图片每个应用程序都使用它在控制图标上单击鼠标键会使Windows显示系统菜单系统菜单它提供了诸如还原移动大小最小化最大化以及关闭这样的标准操作 最小化图标 每个Windows 及Windows NT应用程序都在窗口的右上角显示三个图标最左边的图标是一段短下划线这就是最小化图标它可以使用程序被最小化 最大化图标 最大化图标是三个图标中中间的那一个看起来象两个小窗口使用最大化图标可以使用应用程序占满整个屏幕如果选择了这个图标其它应用程序窗口都会被盖住 垂直滚动条 如果有必要应用程序可以显示一个垂直滚动条垂直流动条显示在应用程序窗口的右边在两端有两个方向相反的箭头它还有一个着色的棒和一个透明的窗口块后者被用于显示当前显示内容与整个文档的关系你可以用滚动条来选择显示哪一页一般在任何一个箭头上单击一下会使显示内容移动一行单击向上箭头下方的窗口块并拖动它会使屏幕输出快速更新到应用程序屏幕输出的任意位置 水平滚动条 也可以显示一个水平滚动条 水平滚动条显示在窗口的底部具有与垂直滚动条类似的功能你用它来选择 要显示哪些列一般在任何一个箭头上单击一个会使显示内容移动一列单击向左箭头右边的窗口块并拖动它会使屏幕输出快速更新到应用程序屏幕输出的任意位置 选单栏 一个可选择的菜单条可以显示在标题条的下方通过菜单条来选择菜单和子菜单这种选择可以通过用鼠标单击也可以用热键组合来实现热键组合经常是ALT与命令中带下划线的字母的组合比如File命令中的 F 用户区 通常用户区占据了窗口最大的部分这是应用程序的基本输出区域应当由应用程序来复杂管理用户区另外应用程序可以输出到用户区 面向对象的思维方法 对于程序员来说面向对象意味着非常熟悉的事物将世界看成是一组彼此相关并相互通信的实体即对象组成每个对象有一个名字来标识这是人们通常看待世界的方式例如当看见一辆汽车时所见到的是一辆汽车而不是一大堆原子人们可以将汽车分解为车轮发动机车门油箱等它们都是具体的实体即对象 对象之间的通信被称为发送消息即一个对象请求另一个对象执行某种方式的操作例如交叉路口的红灯请求驾驶员停车驾驶员在接受到消息之后他所执行的动作是踏下制动踏板这有向汽车发送了一条消息汽车在接受到此消息之后又将该消息分解之后发送到相关的对象上制动器作用于车轮上将动能转变成为势能使车速降下来尾灯又向它后面的其它车辆的驾驶员发送消息各种仪表盘向驾驶员反馈出所发送的消息的动作结果 从程序员角度而言对象是内存中一块有名的存储单元我们通常所谓的变量就是一种数据对象但对象的概念比变量的含义更广义通常将对象定义成为包含有数据和代码的内存区域数据表征对象的特征而代码用于响应消息使对象进行某些动作从屏幕上显示的一个可视的窗口对象为例我们可以对比分析一下用户心目中的对象和程序员心目中的对象的关系窗口对象的特征例如颜色长度其中显示的信息等在程序中被表示为数据用户对窗口对所做的操作例如移动窗口改变窗口的大小等使得用户向窗口发送了消息这些消息引起了计算机(内存中的)对象执行相应的代码代码执行的结果改变了对象中的数据使对应的可以视对象 的位置和大小发生了变化 对象为响应消息所执行的代码被称为方法对象中保存的数据构成对象的属性对象的抽象定义就是执行某些动作否则没有其它途径可以使一个对象动作起来向一个对象发送消息在程序中表示为 functionName(id arg arg ); 其中消息是functionNameid是标识对象的一个对象名或称其为对象的标识符Windows使用某种类型的 数据来作为对象的标识符这个标识符号常被称为对象的句柄arg等为消息所带的参数 虽然发消息类似于标准的函数调用但消息也有函数调用中没有的特性例如消息始终在执行一选择机制其参数与其它消息区别开来从而告诉该对象完成什么样的操作一个函数名始终指向内存中该函数的代码所位于的确定地址消息并不指向内存中的某地址但却告诉接受消息的对象要引用的内存地址是什么函数不仅说明操作而且还要执行如何完成该操作的方法消息只说明该操作在对象中定义的方法说明如何完成该操作当向不同的对象发送相同的消息时所执行的方法是不同的 在面向对象的程序设计中每个对象由一个类来定义类是对一组性质相同的对象的程序描述它是由概括了一组对象共同性质的方法和数据组成从一组对象中抽象出公共的方法与数据将它们保存在一个类中是面向对象程序设计的核心 在日常生活中我们也以类这种方式来定义客观对象通过对客观对象进行抽象我们将性质相同的对象归为一类形成概念例如人类苹果类食品类等通过对客观对象分类我们也可以更好地认识客观对象例如当知道张三是一个人时不用对张三进行更多的描述我们已知道张三作为一个人所具有的特征和行为因为它们已经在人类中进行了描述 在面向对象的程序中类被用作样板来生产具有相同行为方式的对象类就像是生产对象的一个工厂在生产对象时对象具有类中所描述的同样的数据结构和方法同时对象的每个数据在创立之初取得一个初始值形成对象的初始状态对象通过发送消息相互作用对象的状态从一种状态过渡到另一种状态当所有的有关对象到达某种特定的状态时就得程序的运行结果 使用类产生对象的过程也称为生成该类的一个实例因此对象也可以定义为对象是类的一个实例定义类也意味着将该类的对象公用代码放在内存的公共区域中而不必对每个对象都将它们的代码和数据重新进行一次描述这减轻了程序员的劳动强度我们可以将一些常用对象定义放在一个公用库中而在程序中需要该类的一个对象时就创建该类的一个实例Windows已为程序员预定义了许多像按钮滚动槓和对话框等对象的类当程序员需要这些类的对象时仅需创立该类的实例即可对于同一个类的不同对象在建立对象时其初始状态不同因而这些对象在屏幕上显示的位置大小等属性也不相同但同类的对象的操作是相同的(因为它们共用相同的方法)这也就是为什么不同的Windows应用程序对用户表现出一致的操作特性的原因之一 |