下载本文示例代码
每一个新版本的Windows都引入了一些新的特色,例如Windows 95带来了注册表、任务条、系统通知区等Windows 3.x完全没有的特色。这些新特色为Windows用户带来全新的体验。通常计算机用户除了使用操作系统以外,还使用各种各样的基于操作系统的应用软件。这些应用软件都必须支持操作系统提供的新功能,否则计算机用户就无法完全地使用新操作系统提供的强大功能。 举例来说,使用笔记本电脑的用户通常希望笔记本电脑可以在用户不使用的时候只消耗很少的电能,甚至不消耗电能,而当用户希望使用的时候,笔记本电脑又可以非常迅速地恢复到用户原先的工作状态。这个功能很实用,它可以使笔记本用户有更长的"待机时间"。在Windows 2000中支持高级电源管理功能,这个功能可以让计算机在"睡眠模式"下几乎不消耗电能。Windows 2000为了实现高级电源管理的功能,当系统准备从"正常模式" 切换到"睡眠模式"的时候,使用了以前Windows中没有的 "Power Management 消息"来把系统工作模式将要改变的信息通知到所有的应用程序,从而确认是否所有的应用程序都"同意"将系统状态切换到节能的"睡眠模式"。 Windows 2000只有在所有应用程序都"同意"系统切换工作模式的时候,才会将系统切换到"睡眠模式"。这样做,可以防止一个应用程序正在向硬盘写入大量数据的时候,而Windows 2000却要关闭硬盘电源,切换到"睡眠模式"。如果出现上面这种情况,必然会导致用户程序数据的丢失。 所以,我们看到如果一个在Windows 2000上运行的应用程序对"Power Management 消息"没有反应,或者是反应错误,结果就可能导致用户数据的丢失。从这个例子我们看到,虽然Windows 2000在系统中加入了高级电源管理的功能,但是如果用户运行的应用程序不能很好地支持这个新功能,反而会导致用户数据丢失,那么Windows 2000的高级电源管理功能对用户来说就是没有用处甚至是有害的,用户不得不取消这种功能来保证数据正确。所以,应用程序和操作系统必须很好地协作工作才能保证用户使用到计算机系统提供的最新功能。 因此,要充分发挥Windows XP的强大功能,建议用户在Windows XP上运行"Windows XP-ready"的应用程序。"Windows XP-ready"意味着这个应用程序和Windows XP可以非常好地协作工作,带给用户最好的Windows XP"体验"。 每一个正在开发或者是准备开发在Windows XP系统上运行的应用程序的开发人员,都应该使自己的应用程序成为"Windows XP-ready"的。如何才能保证自己的应用程序是"Windows XP-ready"的呢? "Windows XP-ready"的应用程序应该具有以下的特征: 1. 支持Windows XP界面风格 Windows XP带有新的ComCtl32 v6。ComCtl32 v6很大程度上不同于先前的版本,这点用户可以从Windows XP界面巨大的变化体会到。ComCtl32 v6不仅为系统和应用程序带来了全新的变化,而且使用ComCtl32 v6的方法也和原来的方法不一样。在Windows XP中要使用ComCtl32 v6必需使用"程序清单"(manifest,一个XML文件,用来定义Windows XP程序使用的DLL、组件等系统资源)。关于使用程序清单的问题,在本文的后面还将继续讨论。要使用Windows XP的界面风格,你必须在程序中使用ComCtl32 v6来开发和测试你的程序,而且在程序发布的时候,必须通过程序清单指定Windows XP使用ComCtl32 v6。 2. 支持快速用户切换 在Windows XP中,用户可以快速地在不同的登录用户间进行切换而不用退出Windows XP登录。为了使你的程序在这个新特色下正常地工作,你的程序中必需使用恰当的方法来进行数据隔离,同时必须通过Windows XP的终端服务(Terminal Services)模式测试。在你的应用程序中,必须处理当你登录的会话(登录的会话也就是一个用户登录到Windows XP中的整个过程)被切换出去的时候系统发送给你的消息。另外需要注意的是,当应用程序所属的对话被切换出去的时候,程序不能再使用系统的屏幕了,也不能再发出声音。所以你的程序还应该在被切换出去的时候可以很好地在不使用屏幕和不发出声音的情况下正常地运行。 3. 制作高质量的图标 Windows XP 支持最大到128x128点阵的具有24-bit颜色和8-bit alpha遮盖通道的全新的图标。这种新的图标不仅看起来更漂亮,而且可以表示更多的信息。例如在图标被点击的时候,可以在图标中显示一些附加的文字信息。由于Windows XP提供了多种不同显示模式,建议开发者制作16x16、32x32和48x48 的不同尺寸的图标来适应Windows XP的不同的显示模式,从而保证应用程序在Windows XP的不同显示模式下都具备高质量的外观。 4. 使用文件查找器(Shell Folders)来查找特定的文件夹 Windows XP 使用了许多新的文件夹来帮助用户组织系统中的各种各样的文件。为了使用户在大量的文件中快速地查找到相应的文件,Windows XP提供了文件查找器来快速定位用户的文件。文件查找器通过使用和不同类型的文件进行关联来快速的定位用户的文件。这一特性不仅可以在Windows XP的桌面中使用,也可以在Windows XP的应用程序中使用。在应用程序中,可以通过ShFolder.dll中提供的API来快速定位用户需要查找的文件。当然,为了保证这一功能的使用,你的应用程序在发布的时候,最好将ShFolder.dll 一同发布。 5. 确保你的程序支持Web open/save Windows XP提供了新的Web open/save的功能,使用户的文件可以通过网络中HTTP服务保存在其它的计算机上。如果希望应用程序也支持这个功能,最简单的方法就是在程序中当要进行文件open/save的时候,使用系统提供的公共对话框来进行操作。但是,要确保应用程序很好地在Web open/save下工作,程序还应该提供很好的文件数据读取/保存进度表示和很好的文件传输错误处理。因为在Web open/save 工作模式下,你的文件读/写可以在带宽非常小而且很不稳定的网络环境中工作,这种工作环境和传统的硬盘或软盘是不一样的。因此,需要在应用程序中增加更多的代码来适应网络的不稳定性和潜在的出错可能性。 6. 在高分辨率显示模式下测试你的程序 Windows XP支持分辨率非常高的显示器。目前,133dpi 的显示器已经投入使用,很快200dpi 的显示器就要上市了。在Windows XP中,最大支持的显示分辨率是480dpi。因此,应该对应用程序在非常高的分辨率下工作的情况有所准备。通常应该在大字体(120dpi)和大图标(128×128点阵)的情况下测试一下应用程序的显示效果。因为在高分辨率情况下,看起来非常小的字体也很清晰,显示的质量比现在的96 DPI的显示器要好得多。
每一个新版本的Windows都引入了一些新的特色,例如Windows 95带来了注册表、任务条、系统通知区等Windows 3.x完全没有的特色。这些新特色为Windows用户带来全新的体验。通常计算机用户除了使用操作系统以外,还使用各种各样的基于操作系统的应用软件。这些应用软件都必须支持操作系统提供的新功能,否则计算机用户就无法完全地使用新操作系统提供的强大功能。 举例来说,使用笔记本电脑的用户通常希望笔记本电脑可以在用户不使用的时候只消耗很少的电能,甚至不消耗电能,而当用户希望使用的时候,笔记本电脑又可以非常迅速地恢复到用户原先的工作状态。这个功能很实用,它可以使笔记本用户有更长的"待机时间"。在Windows 2000中支持高级电源管理功能,这个功能可以让计算机在"睡眠模式"下几乎不消耗电能。Windows 2000为了实现高级电源管理的功能,当系统准备从"正常模式" 切换到"睡眠模式"的时候,使用了以前Windows中没有的 "Power Management 消息"来把系统工作模式将要改变的信息通知到所有的应用程序,从而确认是否所有的应用程序都"同意"将系统状态切换到节能的"睡眠模式"。 Windows 2000只有在所有应用程序都"同意"系统切换工作模式的时候,才会将系统切换到"睡眠模式"。这样做,可以防止一个应用程序正在向硬盘写入大量数据的时候,而Windows 2000却要关闭硬盘电源,切换到"睡眠模式"。如果出现上面这种情况,必然会导致用户程序数据的丢失。 所以,我们看到如果一个在Windows 2000上运行的应用程序对"Power Management 消息"没有反应,或者是反应错误,结果就可能导致用户数据的丢失。从这个例子我们看到,虽然Windows 2000在系统中加入了高级电源管理的功能,但是如果用户运行的应用程序不能很好地支持这个新功能,反而会导致用户数据丢失,那么Windows 2000的高级电源管理功能对用户来说就是没有用处甚至是有害的,用户不得不取消这种功能来保证数据正确。所以,应用程序和操作系统必须很好地协作工作才能保证用户使用到计算机系统提供的最新功能。 因此,要充分发挥Windows XP的强大功能,建议用户在Windows XP上运行"Windows XP-ready"的应用程序。"Windows XP-ready"意味着这个应用程序和Windows XP可以非常好地协作工作,带给用户最好的Windows XP"体验"。 每一个正在开发或者是准备开发在Windows XP系统上运行的应用程序的开发人员,都应该使自己的应用程序成为"Windows XP-ready"的。如何才能保证自己的应用程序是"Windows XP-ready"的呢? "Windows XP-ready"的应用程序应该具有以下的特征: 1. 支持Windows XP界面风格 Windows XP带有新的ComCtl32 v6。ComCtl32 v6很大程度上不同于先前的版本,这点用户可以从Windows XP界面巨大的变化体会到。ComCtl32 v6不仅为系统和应用程序带来了全新的变化,而且使用ComCtl32 v6的方法也和原来的方法不一样。在Windows XP中要使用ComCtl32 v6必需使用"程序清单"(manifest,一个XML文件,用来定义Windows XP程序使用的DLL、组件等系统资源)。关于使用程序清单的问题,在本文的后面还将继续讨论。要使用Windows XP的界面风格,你必须在程序中使用ComCtl32 v6来开发和测试你的程序,而且在程序发布的时候,必须通过程序清单指定Windows XP使用ComCtl32 v6。 2. 支持快速用户切换 在Windows XP中,用户可以快速地在不同的登录用户间进行切换而不用退出Windows XP登录。为了使你的程序在这个新特色下正常地工作,你的程序中必需使用恰当的方法来进行数据隔离,同时必须通过Windows XP的终端服务(Terminal Services)模式测试。在你的应用程序中,必须处理当你登录的会话(登录的会话也就是一个用户登录到Windows XP中的整个过程)被切换出去的时候系统发送给你的消息。另外需要注意的是,当应用程序所属的对话被切换出去的时候,程序不能再使用系统的屏幕了,也不能再发出声音。所以你的程序还应该在被切换出去的时候可以很好地在不使用屏幕和不发出声音的情况下正常地运行。 3. 制作高质量的图标 Windows XP 支持最大到128x128点阵的具有24-bit颜色和8-bit alpha遮盖通道的全新的图标。这种新的图标不仅看起来更漂亮,而且可以表示更多的信息。例如在图标被点击的时候,可以在图标中显示一些附加的文字信息。由于Windows XP提供了多种不同显示模式,建议开发者制作16x16、32x32和48x48 的不同尺寸的图标来适应Windows XP的不同的显示模式,从而保证应用程序在Windows XP的不同显示模式下都具备高质量的外观。 4. 使用文件查找器(Shell Folders)来查找特定的文件夹 Windows XP 使用了许多新的文件夹来帮助用户组织系统中的各种各样的文件。为了使用户在大量的文件中快速地查找到相应的文件,Windows XP提供了文件查找器来快速定位用户的文件。文件查找器通过使用和不同类型的文件进行关联来快速的定位用户的文件。这一特性不仅可以在Windows XP的桌面中使用,也可以在Windows XP的应用程序中使用。在应用程序中,可以通过ShFolder.dll中提供的API来快速定位用户需要查找的文件。当然,为了保证这一功能的使用,你的应用程序在发布的时候,最好将ShFolder.dll 一同发布。 5. 确保你的程序支持Web open/save Windows XP提供了新的Web open/save的功能,使用户的文件可以通过网络中HTTP服务保存在其它的计算机上。如果希望应用程序也支持这个功能,最简单的方法就是在程序中当要进行文件open/save的时候,使用系统提供的公共对话框来进行操作。但是,要确保应用程序很好地在Web open/save下工作,程序还应该提供很好的文件数据读取/保存进度表示和很好的文件传输错误处理。因为在Web open/save 工作模式下,你的文件读/写可以在带宽非常小而且很不稳定的网络环境中工作,这种工作环境和传统的硬盘或软盘是不一样的。因此,需要在应用程序中增加更多的代码来适应网络的不稳定性和潜在的出错可能性。 6. 在高分辨率显示模式下测试你的程序 Windows XP支持分辨率非常高的显示器。目前,133dpi 的显示器已经投入使用,很快200dpi 的显示器就要上市了。在Windows XP中,最大支持的显示分辨率是480dpi。因此,应该对应用程序在非常高的分辨率下工作的情况有所准备。通常应该在大字体(120dpi)和大图标(128×128点阵)的情况下测试一下应用程序的显示效果。因为在高分辨率情况下,看起来非常小的字体也很清晰,显示的质量比现在的96 DPI的显示器要好得多。
下载本文示例代码
开发Windows XP-Ready的程序开发Windows XP-Ready的程序开发Windows XP-Ready的程序开发Windows XP-Ready的程序开发Windows XP-Ready的程序开发Windows XP-Ready的程序开发Windows XP-Ready的程序开发Windows XP-Ready的程序开发Windows XP-Ready的程序开发Windows XP-Ready的程序开发Windows XP-Ready的程序开发Windows XP-Ready的程序开发Windows XP-Ready的程序开发Windows XP-Ready的程序开发Windows XP-Ready的程序