|
导读Win95中如“音量”、“日期”、“屏幕”等可以在Win95的状态栏(Tray)上建立快捷图标。如果鼠标停留在图标上,会显示出相应的工具提示(ToolTip),当用户在图标上单击(或双击)鼠标左键时... Win95中如“音量”、“日期”、“屏幕”等可以在Win95的状态栏(Tray)上建立快捷图标。如果鼠 标停留在图标上,会显示出相应的工具提示(ToolTip),当用户在图标上单击(或双击)鼠标左键时,软 件会实现相应的功能,单击右键时会实现其简捷的功能。 Tray也称作SysTray、TrayIcon、NotifyIcon、Status Area等,它是Win95/NT的任务条上一个特殊区 域,许多软件运行时在Tray中加入自己的图标,这个区域的另一个特殊之处在于你可以从资源管理器内 拖文件然后放在这个区域。正是由于这些特性,Tray编程在Win95/NT中有特殊的地位。 Tray编程比较特殊,主要包括三个主要方面:图标、工具提示和消息。它属于Shell编程的一部分, 主要是利用Shell API中的Shell_NotifyIcon函数完成的。Shell_NotifyIcon函数是这样声明的: Type NOTIFYICONDATA cbSize As Long 结构所占的字节数 hwnd As Long 接受TRAY托盘图标消息的窗口句柄 uID As Long 由应用程序定义的图标识别符 uFlags As Long 标志 uCallbackMessage As Long 由应用程序定义的消息 hIcon As Long TRAY图标句柄 szTip As String * 64 工具提示字符串 End Type Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias " Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long 这个结构中的uFlags很重要,它有三种取值:NIF_ICON、NIF_MESSAGE和NIF_TIP,分别表示 hIcon、uCallbackMessage和szTip参数有效,用来修改图标、消息和工具提示。这三个取值可以同时使 用(三个参数相或),也可以单独使用。为了实现对用户鼠标操作的响应,需要在程序中处理 uCallbackMessage所定义的消息,该消息的长参数lParam包含Win32所定义的鼠标消息,如果有多个图 标,短参数wParam表示图标识别符。 在vb光盘中\TOOLS\UNSUPPRT\SYSTRAY目录下有SYSTRAY的工程,经编译后生成 SYSTRAY.OCX控件。 现在我们应用SYSTRAY.OCX控件进行Tray编程。 首先建立一个“工程”,依次:“工程”——“部件”(或者在“工具箱”上单击鼠标右键选择“部 件”),再复选SYSTEM TRAY CONTROL CSYSTRAY,CSYSTRAY控件即出现在“工具箱”中。 SYSTRAY.OCX控件拥有MouseDblClick、MouseDown、MouseMove、MouseUp四个事件,响应先 后为MouseMove、MouseDown、MouseUp、MouseDblClick。下面编程很清楚地说明他们的响应时间次 序。 Private Sub cSysTray1_MouseDblClick(Button As Integer, Id As Long) MsgBox "Hei!You have DblClick the mouse!" End Sub Private Sub cSysTray1_MouseDown(Button As Integer, Id As Long) If Button = 2 Then MsgBox "Hei!You have clicked me in right button!" End If End Sub Private Sub cSysTray1_MouseMove(Id As Long) MsgBox "Hello!I am here!" End Sub Private Sub cSysTray1_MouseUp(Button As Integer, Id As Long) MsgBox "Hei!You clicked me just now!" End Sub Private Sub Form_Load() cSysTray1.TrayTip = "Hello! I am the King of the world!" cSysTray1.InTray = True cSysTray1.TrayIcon = "c:\fittings\FACE.ico" End Sub SYSTRAY控件还拥有InTray、Name、TrayIcon、TrayTip、Parent、Index、Object、Tag属性。InTray 设置是否在Win95的状态栏Tray上建立一个快捷图标;Name设置SYSTRAY控件的名称;TrayIcon设 置在Tray上所建立快捷图标的外观;TrayTip设置如果鼠标停留在图标上所显示的工具提示(ToolTip)内 容;Tag储存程序所需要的附加数据。 通过实践发现,在使用VB开发应用程序时,灵活使用API 函数,会更大地发挥VB 的作用,使开 发的软件更专业,功能更强大。本文仅仅是介绍了一下API函数在Win95中的使用方法,以作抛砖引玉 之用。真正的应用API 函数,还需要更详尽的资料和读者更大的努力。 上述程序在中文Windows 98和 VB5.0中文企业版下调试通过。 |
温馨提示:喜欢本站的话,请收藏一下本站!