【 tulaoshi.com - C语言心得技巧 】
Windows 2000 UI 新特点之一:信息条提示(Infotip)
原文参见:MSDN Magazine March 2000
编译/赵湘宁
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)本文源代码
本文假设您熟悉windows的外壳编程及ATL。
摘要: Windows 2000引入了许多很有用的用户界面新特点,我们能在自己的应用程序中定制和实现这些用户界面。本文是由一系列文章组成,将探讨包括信息提示(Infotip)、增强文件夹特性、搜索管理、图标覆盖和快速启动工具条在内的几个新的UI编程,使用它们来丰富系统外壳的功能。
阅读本篇系列文章之后,您将学会Windows 2000用户界面编程的几个新特点: 如何为文件提供“infotips”(信息条提示)特性; 如何创建一个定制的栏目管理器扩展(column handler extension),它使我们能通过Windows的资源管理器在“查看”菜单的“详细资料”栏的视图中看到新创建的文件属性栏目。 为了进一步扩展外壳,我们还将另外实现几个界面特点:搜索管理、清除管理、使用属性页的文件夹定制、图标覆盖、以及上下文菜单外壳扩展。 随着 Windows 操作系统的不断更新,其用户界面也在随之推陈出新,甚至有一些人已经在抱怨微软公司花太多的精力来开发用户界面,而在操作系统的其它功能上创新不够。这个说法是否正确,有待广大Windows用户来评判。
探究 Windows 2000 的几个UI新特点。可以发现Windows用户界面的几个发展趋势:首先是脚本,尤其是WSH将取代命令行;其次是新的用户界面为将来定制自己的应用程序提供了更好的(基于COM的)图形用户界面接口;第三是应用程序将与系统外壳(SHELL)结合得更紧密。
对系统外壳的简单回顾外壳扩展是一个COM进程内服务器,它由资源管理器 (Explorer) 来调用以响应系统外壳内发生的事件。只有少数几个任务是靠资源管理器与用户定义的应用来协作完成。在开始这些任务之前,资源管理器查找这些注册的模块并加载它们。从概念上讲,这些模块相当于回调函数。而回调函数是由Windows3.1引入并影响了整整一代程序员的著名编程特点。
外壳扩展需要实现一对COM接口:一个提供特定行为,另一个用于初始化目的。另外,外壳扩展必须要有精确的注册方案,它们必须在适当的地方创建正确的注册入口以便资源管理器在需要时能找到并加载它们。 下表列出了目前可获得的所有外壳扩展类型,需要的最小版本号,有关的接口和简单描述:
(表一)
类型类型说明适用于版本有关的接口描述Context Menu上下文菜单文件类和外壳对象Windows 9xIContextMenu、IContextMenu2、IContextMenu3
允许在外壳对象的上下文菜单中增加新的才单项Right drag and drop右拖拽文件类和外壳对象Windows 9xIContextMenu、IContextMenu2、IContextMenu3允许在右拖拽后出现的上下文菜单中增加新的才单项Drawing shell Icons绘制外壳图标文件类和外壳对象Windows 9xIExtractIcon对于一个文件类来说,可以选择文件在运行时应该显示那个图标Property Sheet属性页 文件类和外壳对象Windows 9xIShellPropSheetExt向文件类属性对话框中加入另外的属性表页。也适用于控制面板应用Lef