VB 版 (精华区)
发信人: alias (白桦林), 信区: VB
标 题: Win95系统API函数大揭秘(9)
发信站: 哈工大紫丁香 (Wed Jul 26 11:00:01 2000), 转信
发信人: yucheng (Bingo), 信区: VisualBasic
发信站: BBS 水木清华站 (Fri Feb 25 17:30:51 2000)
在“状态区”中建立图标
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_NotifyIcon
A" (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控件的名称;Tr
ayIcon设
置在Tray上所建立快捷图标的外观;TrayTip设置如果鼠标停留在图标上所显示的工具提
示(ToolTip)内
容;Tag储存程序所需要的附加数据。
--
有人说我捂着脸的时候特象周润发,你信不信?
Flying Fox
Flying Fox
Flying Fox
Flying Fox
Flying Fox
--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: mig.bbs@smth.org]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.285毫秒