分享
 
 
 

在“状态区”中建立图标

王朝厨房·作者佚名  2007-01-04
窄屏简体版  字體: |||超大  

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中文企业版下调试通过。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有