win95引进几个新的win32 api, 对通用控件和对话框提供支持. 使得新的可视用户接口
特征的实现容易些. 新的通用控件包括工具条, 状态条, 列标题(column heading), 标
志(tabs), 幻灯片(slider), 进度显示器(progress indicator), 丰富的文本控件, 表
显示以及树显示. 也将对现有通用对话框进行一些修改, 以增加一些补充功能, 现有通
用对话框包括open, save as以及print setup. 已经使用通用对话框的应用软件应当继
续这样做.
当win95和nt cairo装备有再分配动态连接库(dll)时, 通过dll新的通用控件和对话框
也适用于win32s和winnt的当前版本. 这样, 应用软件可以利用新的控件和对话框, 而且
仍然可以运行在所有的windows平台. 修订的user interface design guide, 可以在
development library中找到, 覆盖了新的控件和对话框以及其他风格的应用软件指导准
则.
pnp事件: 使pc用起来更容易
应用软件应当支持新的plug-and-play信息. ms与pc系统和部件的制造商密切合作, 开
发了新的pnp硬件设计标准, 该标准可以实现pc系统上设备的自动和动态配置. pnp将成
为ms操作系统产品的标准特征, win95首次采用了pnp功能.
虽然pnp可能看起来象硬件系统专有的创造, 但它提供了一些关键功能, 使得应用软件智
能地响应系统的变化. 在这种方式下, 一般应用软件也将很好地与windows系统集成在一
起. 当硬件配置发生动态变化, 例如, 插入一个传真调制解调器, 或者网络适配器,
应用软件将收到有关信息, 并且可以在没有请求用户接口的任何干预的情况下, 自动利
用这些新的硬件的能力. 这种设计方法使得pc对新的和现有用户都很直观. 例如, 当
计算机网络上移去, 应用软件能够提醒用户注意网络上的打开的文件.
此外, 应用软件可能关心在扫描过程中显示分辨率的变化( 这种变化可能发生在win95
上). 也放存在不同的图标或位映射, 应用软件使用它们依赖于显示分辨率. 应用软件
获得wm_displaychanged消息, 它能作出必要的更新.
另一个重要的特征, 被称为慢连接, 允许应用软件对远程联系拥有智能化的知识. 如
果应用软件运行在通过远程访问服务连接到网络的计算机上, 应用软件对从网络和自
动存储文件装入数据非常灵敏.
应用软件也应当为网络上的长操作提供一个cancel按刍, 在相同的方式下, 应用软件
能够监视advanced power management(apm)信息以检测系统是否依赖电池运行. 如果
系统依赖电池运行, 为了完成背景任务应用软件能够作出转磁盘以及自动存储频率的
灵敏选择.
如果用户加进这个功能, windows nt和win32上将发生什么? 对于其中大部分组成, 什
么也不发生. windows nt对检测慢连接(slowlink)的支持, 如同运行在windows for
workgroup上的win32所做的那样. 但是, windows nt和win32s的当前版本对pnp并不清
楚, 所以它们不宣传这些消息. windows nt cairo将对pnp完全清楚, 支持所有pnp信号
和事件.
外壳支持
win95通过提供单一工具与所有资源( 文件, 程序, 打印机以及其他各种设施 )一起工
作, 简化了与系统资源的工作. win95把各种不同的管理者-- program manager, file
manager, control panel, print manager和windows setup联合起来--并且可以把所有
资源组织在一个灵活的层次结构中. 为了系统资源, 拖放功能操作将受到支持, 一个桌
面区域将用来放置经常访问的资源.
增强功能还包括5个阅读器, 使用户可以在没有安装建立文件的应用软件的条件下阅读
文件的内容. win95为必个数据类型提供一些标准的文件阅读器. 然而, 用户也可以为
自己的数据类型提供文件阅读器, 或者提供带有更多特征( 例如拷贝和打印 )的文件
阅读器. development library的未来版本将提供更多有关文件阅读器的信息.
win95中对长文件和unc路径名(\server\share)的支持使得信息浏览和安置非常方便.
应用软件应当使用unc路径名, 而不是驱动器字母, 以便于在网络共离上打开的文件,
下一次在没有请求用户与相同的驱动器字母再联系的条件下开始对话框时, 仍可能很
容易地被访问. winnt和wfw3.11已经支持unc路径名. win95和winnt支持长文件名, 但
用户的应用软件在win32s上将看8.3文件名. 如果用户使用通用对话框, 用户将自动获得
长文件名和unc路径名支持, 所以, 用户所要做的全部事情是确保缓冲区足够存储255个
字符的长文件名, 外加一个260字符的unc路径名.
用户也需要为他的应用软件在系统注册处注册几个关键项, 如大小图标, 语意菜单的缺
省动词, 附加属性页. win95将利用这些注册项显示用户应用软件的有关信息.
踏上走向windows 95的路
既然用户已经知道win95应用软件的一些重要特征, 便可以很容易地设计开发32位的
win95应用软件, 开发出的应用软件也能运行在winnt和wfw with w32s上. 下面给出一些
值得注意的地方:
1.检查porttool.
2.请使用win32众多开发工具的一个工具, 如win32 sdk, vc for winnt, watcom c++
95, symantec c 6.1, bc4.0或者pharlap tnt.
3.按windows95 特征设计应用软件, 开发win32 ole2.0支持的应用软件.
4.首先在winnt和win32s上, 然后在win95上测试应用软件.
porttool
用户可以在他的应用软件中加入许多特征, 以利用基础平台. 这些特征包括线程, 增强
的超文件, 多媒体, 通讯, 网络, 高级图形, 安全等等. 用户可以利用dev library中
的"writing great win32 applications"表帮助确定各个平台所能提供的功能. 用户
然后就可以决定在他的应用软件中加入哪些特征以及如何使应用软件可以在多个平台运
行.
下面通过修改后的porttool样本来介绍线程. porttool使得win95和winnt支持线程, 但
在win32s运行时它却使得线程无效. 同样, 在win95上运行时, porttool使得一个小图标
可以由win95外壳显示. 当屏幕分辨率发生变化时它也弹出对话框, 以显示应用软件能
够对pnp事件作出反应.
当然, 一个实际的应用软件所要做的事情远远超过一个对话框. 进一步地, 当porttool
运行在安装有双处理器的nt系统上时, 它将自动利用双处理器的优点, 每个线程在两个
处理器之间均匀分配. 些外, 运行在nt和win95上的porttool支持长文件名, 而win32s
要用8.3文件名. 所有这些都可以发生在一次执行过程中!
下列显示如何探测用户的应用软件运行所依赖的平台及如何利用平台之间的不同. 这些
都非常容易. 当porttool运行在win3.x with win32s上时, 下述摘自porttool.c的代码
片断的背景选择无效.