<marquee width=358>欢迎来到月影社区,希望这里可以成为您美丽的梦幻花园,如果你觉得这里好请分享给您的朋友!- wf66.com</marquee> 将月影社区设置为您的首页将月影社区地址加入到您的收藏栏
月影社区时尚音乐音乐查询IP手机许愿之瓶最新更新文件加密访客留言爱音乐
欢迎您,首页 >> 信息中心 >> VB托盘程序详解上

请输入您关键字:


VB托盘程序详解上

推荐查看本文HTML版本

很多软件运行时会在系统托盘区(就是桌面右下角显示时间的区域)出现一个小图标,它作为程序运行的一个标志,我们可以通过使用小图标所弹出的菜单来控制应用程序的状态。本例就给出了一个功能比较完整的托盘程序,我们可以看到怎样用API函数Shell_NotifyIcon来添加、删除、更改托盘图标;而且例中还演示了为托盘图标添加右键菜单和浮动提示的方法。 

程序(附后)用到了Shell_NotifyIcon、SendMessage、CallWindowProc、SetWindowLong等API函数,其中Shell_NotifyIcon是主要的函数,它用来添加、删除、更改系统托盘区(taskbar status area)的图标,所以我们先来看看这个函数的声明和参数:

使用API函数之前必须先在程序中声明如下:

Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long 
 
 
其中各参数的意义如下表: 

参数: 意义 
dwMessage 为消息设置值,它可以是以下的几个常数值:0、1、2 
NIM_ADD = 0  加入图标到系统状态栏中 
NIM_MODIFY = 1  修改系统状态栏中的图标 
NIM_DELETE = 2  删除系统状态栏中的图标 

LpData 用以传入NOTIFYICONDATA数据结构变量,其结构如下所示:

Type NOTIFYICONDATA

cbSize As Long  需填入NOTIFYICONDATA数据结构的长度
HWnd As Long 设置成窗口的句柄 
Uid As Long 为图标所设置的ID值
UFlags As Long  设置uCallbackMessage,hIcon,szTip是否有效
UCallbackMessage As Long 消息编号
HIcon As Long   显示在状态栏上的图标
SzTip As String * 64 提示信息
End Type 

返回值 Long,非零表示成功,零表示失败 

在使用这个API函数之前我们应该先定义结构类型NOTIFYICONDATA:

Public Type NOTIFYICONDATA 
 cbSize As Long HWnd As Long 
 Uid As Long UFlags As Long 
 UCallbackMessage As Long 
 HIcon As Long 
 SzTip As String * 64 
 End Type  

然后定义一个NOTIFYICONDATA的变量TheData来记录设置托盘图标的数据

Private TheData As NOTIFYICONDATA 



这时我们就可以使用这个函数来设置系统托盘图标了,具体方法如下:

 1、添加图标

With TheData 
.Uid = 0
.HWnd = frm.HWnd 'frm.HWnd是程序主窗体的句柄
.cbSize = Len(TheData)
.HIcon = frm.Icon.Handle'frm.Icon.Handle指向主窗体的图标
.UFlags = NIF_ICON
.UCallbackMessage = TRAY_CALLBACK 
 '作用是允许返回消息,在下一节中会有详细解释。
.UFlags = .UFlags Or NIF_MESSAGE
.cbSize = Len(TheData)
 End With
 Shell_NotifyIcon NIM_ADD, TheData  
'根据前面定义NIM_ADD,设置为“添加模式”,然后添加 
 

 2、删去图标

With TheData
.UFlags = 0
End With 
Shell_NotifyIcon NIM_DELETE, TheData
'根据前面定义NIM_DELETE,设置为“删除模式” [月影社区 http://wf66.com/]
  
 3、更改图标

With TheData 
.HIcon = pic.Handle  
'pic是图片狂PictureBox,存放图标文件
.UFlags = NIF_ICON
End With 
Shell_NotifyIcon NIM_MODIFY, TheData 
'根据前面定义NIM_MODIFY,设置为“更改模式” 
  
 4、为图标添加浮动提示信息

With TheData 
.SzTip = tip & vbNullChar 
  'tip是字符串string,存储提示信息
.UFlags = NIF_TIP 
'指明要对浮动提示进行设置 
End With 
Shell_NotifyIcon NIM_MODIFY, TheData 
'根据前面定义NIM_MODIFY,设置为“修改模式”  
 

通过以上几段代码我们就能根据自己需要添加、删除、更改系统托盘图标,并能添加系统图标上的浮动提示信息。但这时的托盘图标是孤立的,我们并不能利用它来控制应用程序的行为,怎么办呢?别急,请往下看……

VB托盘程序详解上 2006-9-18
转到本主题第:[ 1 ]
相关评论

暂无评论

总计0页 [ ]上一页 下一页
发表评论(揪错)
呢称: * 您尚未登陆,请登录
来自: *
内容:
 

(为防止非法信息,您的言论提交后需要审核才能正常显示)

文学
精品文萃 情感天地 言情小说
网络小说 玄幻小说 悬疑恐怖
武侠小说 古典品谈 外国名著
儿童文学 会员原创 学习园地
杂谈其它
娱乐
爆笑网文 星座占卜 影音动漫
娱乐新闻 影视剧情
诗词
青竹诗歌 个人诗集 宋词雅赏
全唐诗录
新闻
国际新闻 国内新闻 科技新闻
体育新闻
图片
图文专区 艺术长廊 桌面壁纸
精品素材 像素图片
漫画
单幅漫画 爆笑四格 连环漫画
电脑
电脑入门 图形图像 编程开发
游戏
我爱Q宠 最新攻略 最新秘籍
游戏新闻 技巧心得
经济
帕格节电 财经资讯 股市证券
生活
百科知识 外语学院 潮流时尚
健康医疗 宠物花卉 汽车地带
行走天下
美食
面食甜点 家常菜品 药膳食疗
美食天下 烹饪技巧 松辽风味
燕京风味 巴蜀风味 滇黔风味
赣江风味 徽皖风味 闽台风味
齐鲁风味 中州风味 岭南风味
荆楚风味 三晋风味 淞沪风味
苏扬风味 潇湘风味 钱塘风味
民族风味 素斋仿荤
营销
管理杂谈 谈经论道 培训激励
经营战略 职场生涯 公关交际
关于我们版权声明本站导航友情连结作品演示 TOP↑
本论坛言论纯属发表者个人意见,与£月影社区£立场无关。 皖ICP备16024038号-1
禁止发布任何色情/政治/反动相关信息让我们共同来营造一个属于我们的梦幻家园
Copyright ©2001-2006 MoonShadow. All rights reserved.  Version 4.0  Licence 2006.4.2
建站天数:7216天 本站基于ASP+JS构建,完全自主开发,版权归属月影社区 管理员QQ:23165062 Time:3453ms