寻高手

杰子 2007-11-14 01:33:47
我想把我的应用程序最小化后,图标不放在任务栏,而是放在最右下角,像芊芊静听,或QQ那样!谢谢大家!
...全文
155 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xray2005 2007-11-14
  • 打赏
  • 举报
回复
VS05 notifyicon控件
kbryant 2007-11-14
  • 打赏
  • 举报
回复
用VB实现窗口图标最小化到通知栏


添加收藏
系统管理
联系方式


首页 文学作品 网页设计 平面设计 程序设计 考试认证 基础办公 在线影视 在线FLASH 网站运营 资源 架设 QQ资源




汉南在线 → 程序设计 → VB程序


用VB实现窗口图标最小化到通知栏
作 者:匿名
关键字:VB示例




怎样判断发生Resize事件时窗口是最小化状态呢?VB里没有现成的做法,我们可以用非富的API函数。API函数库里有一个函数IsIconic(ByVal hwnd As Long),它就是专门判断窗口是否已最小化的。这样当Form产生Resize事件时,用IsIconic函数判断一下窗口是否为最小化状态,就可知道是否用户按了最小化按钮。

  最关键的一步就是将图标显示在通知栏里,VB里没有现成的做法,我们还得用API函数。API函数库里有一个函数Shell_NotifyIcon(ByVal dwMessage As Long, lpData As NOTIFYICONDATA),是专门操作(包括添加、修改、删除)通知栏里图标的。

  点一下通知栏图标,会出现一些诸如"退出"、"显示窗口"的弹出菜单,怎样实现弹出菜单呢?这个很容易实现,因为点击图标会触发图标所在窗口的MouseDown事件,我们把弹出菜单触发过程写入Form1_MouseDown事件即可。具体例程如下:

  第一步、为了增强程序的可移植性,我们新建一个模块,取名为:NoticeIcon,在此模块中定义一些常量、自定义类型、所需的API函数说明及操作通知栏图标的三个自定义函数(添加、修改、删除),模块NoticeIcon具体代码如下所示:

Public Const DefaultIconIndex = 1 图标缺省索引
Public Const WM_LBUTTONDOWN = &H201 按鼠标左键
Public Const WM_RBUTTONDOWN = &H204 按鼠标右键

Public Const NIM_ADD = 0 添加图标
Public Const NIM_MODIFY = 1 修改图标
Public Const NIM_DELETE = 2 删除图标

Public Const NIF_MESSAGE = 1 message 有效
Public Const NIF_ICON = 2 图标操作(添加、修改、删除)有效
Public Const NIF_TIP = 4 ToolTip(提示)有效

API函数声明
图标操作
Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
判断窗口是否最小化
Declare Function IsIconic Lib "user32" (ByVal hwnd As Long) As Long

设置窗口位置和状态(position)的功能
Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

定义类型
通知栏图标状态
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

函数定义
添加图标至通知栏
Public Function Icon_Add(iHwnd As Long, sTips As String, hIcon As Long, IconID As Long) As Long
 参数说明:iHwnd:窗口句柄,sTips:当鼠标移到通知栏图标上时显示的提示内容
 hIcon:图标句柄,IconID:图标Id号
 Dim IconVa As NOTIFYICONDATA
 With IconVa
  .hwnd = iHwnd
  .szTip = sTips + Chr$(0)
  .hIcon = hIcon
  .uID = IconID
  .uCallbackMessage = WM_LBUTTONDOWN
  .cbSize = Len(IconVa)
  .uFlags = NIF_MESSAGE Or NIF_ICON Or NIF_TIP
  Icon_Add = Shell_NotifyIcon(NIM_ADD, IconVa)
 End With
End Function
删除通知栏图标(参数说明同Icon_Add)
Function Icon_Del(iHwnd As Long, lIndex As Long) As Long
 Dim IconVa As NOTIFYICONDATA
 Dim L As Long
 With IconVa
  .hwnd = iHwnd
  .uID = lIndex
  .cbSize = Len(IconVa)
 End With
 Icon_Del = Shell_NotifyIcon(NIM_DELETE, IconVa)
End Function
修改通知栏图标(参数说明同Icon_Add)
Public Function Icon_Modify(iHwnd As Long, sTips As String, hIcon As Long, IconID As Long) As Long
 Dim IconVa As NOTIFYICONDATA
 With IconVa
  .hwnd = iHwnd
  .szTip = sTips + Chr$(0)
  .hIcon = hIcon
  .uID = IconID
  .uCallbackMessage = WM_LBUTTONDOWN
  .cbSize = Len(IconVa)
  .uFlags = NIF_MESSAGE Or NIF_ICON Or NIF_TIP
  Icon_Modify = Shell_NotifyIcon(NIM_MODIFY, IconVa)
 End With
End Function

nuey1985 2007-11-14
  • 打赏
  • 举报
回复
步骤:
1.找一个.ico文件.
2.在你的窗口上面拖一个notifyicon控件,并将其icon属性设置为你找的.ico文件路径,visible属性设置为false
3.代码中,最小化事件用Me.Hide(),notifyicon控件的visible属性设置为true.
3.运行你的程序,下面托盘就可以显示了.
nuey1985 2007-11-14
  • 打赏
  • 举报
回复
用拖盘控件
杰子 2007-11-14
  • 打赏
  • 举报
回复
任务栏是没有了,但是图标也没有到最右下角阿????
kbryant 2007-11-14
  • 打赏
  • 举报
回复
Me.Hide()貌似可以的
幽谷delphi新手到高手教程48(完结) [37:42] 幽谷delphi新手到高手教程47(数据库操作06) [34:56] 幽谷delphi新手到高手教程46(数据库操作05) [55:38] 幽谷delphi新手到高手教程44(数据库操作03) [23:46] 幽谷delphi新手到高手教程45(数据库操作04) [27:16] 幽谷delphi新手到高手教程43(数据库操作02) [31:28] 幽谷delphi新手到高手教程42(数据库操作01) [17:28] 幽谷delphi新手到高手教程41(函数小练习) [27:38] 幽谷delphi新手到高手教程40(完善第一个函数) [09:00] 幽谷delphi新手到高手教程39(认识函数) [24:58] 幽谷delphi新手到高手教程38(二维数组实例练习) [24:36] 幽谷delphi新手到高手教程37(二维数组02) [27:16] 幽谷delphi新手到高手教程36(二维数组01) [14:16] 幽谷delphi新手到高手教程35(数组操作02) [24:09] 幽谷delphi新手到高手教程34(数组操作01) [09:38] 幽谷delphi新手到高手教程33(趣味程序之我爱幽谷) [16:19] 幽谷delphi新手到高手教程32(完成屏幕女鬼编写) [46:10] 幽谷delphi新手到高手教程31(趣味程序之屏幕女鬼04) [40:45] 幽谷delphi新手到高手教程30(趣味程序之屏幕女鬼03) [01:00:03] 幽谷delphi新手到高手教程29(趣味程序之屏幕女鬼02) [33:57] 幽谷delphi新手到高手教程28(趣味程序之屏幕女鬼01) [43:29] 幽谷delphi新手到高手教程27(中秋节小程序) [23:12] 幽谷delphi新手到高手教程26(完成登陆器的编写) [16:12] 幽谷delphi新手到高手教程25(文件操作之登陆器模拟0... [29:22] 幽谷delphi新手到高手教程24(文件操作之登陆器模拟0... [38:36] 幽谷delphi新手到高手教程23(文件操作之登陆器模拟0... [26:43] 幽谷delphi新手到高手教程22(文件操作之登陆器模拟0... [46:40] 幽谷delphi新手到高手教程21(文件操作2-2) [16:00] 幽谷delphi新手到高手教程20(文件操作2-1) [29:11] 幽谷delphi新手到高手教程19(文件操作1) [28:33] 幽谷delphi新手到高手教程18(完成记事本的编写) [12:04] 幽谷delphi新手到高手教程17(记事本的编写05) [43:00] 幽谷delphi新手到高手教程16(记事本的编写04) [38:00] 幽谷delphi新手到高手教程15(记事本的编写03) [23:11] 幽谷delphi新手到高手教程14(记事本的编写02) [41:10] 幽谷delphi新手到高手教程13(记事本的编写01) [13:00] 幽谷delphi新手到高手教程12(记事本的编写流程介绍) [34:06] 幽谷delphi新手到高手教程11(完成发泄工具的编写) [31:20] 幽谷delphi新手到高手教程10(窗口背景的选择和发泄工... [59:22] 幽谷delphi新手到高手教程09(抠图和声音剪辑工具使用... [33:42] 幽谷delphi新手到高手教程08(发泄工具编写01) [27:19] 幽谷delphi新手到高手教程07(发泄工具编写流程) [49:45] 幽谷delphi新手到高手教程06-2(www.xunyougu.com).a... [23:12] 幽谷delphi新手到高手教程05(www.xunyougu.com) [04:56] 幽谷delphi新手到高手教程06(www.xunyougu.com) [42:27] 幽谷delphi新手到高手教程04(www.xunyougu.com) [25:31] 幽谷delphi新手到高手教程03(www.xunyougu.com) [28:20] 幽谷delphi新手到高手教程02(www.xunyougu.com) [43:06] 幽谷delphi新手到高手教程01(www.xunyougu.com) [16:20]
1,前言 我是在2000年上半年知道GOOGLE的。在这之前,我搜英文资讯通常用AltaVista ,而搜中文资讯则常用Sina。但自 从使用了GOOGLE之后,它便成为我的 Favorite Searchengine了。这也得感谢新浪网友曹溪,因为当初正是因为他的大 力推介,才使我识得了GOOGLE。 记得1996年夏季的时候,当我第一次接触Internet,便被扑面而来的魔力征服了 。那种天涯咫尺的感觉,真是妙不可言。在经历了疯狂的WWW冲浪和如痴如醉的 BBS沉迷之后,我意识到Internet对我影响至深的还是在于学习方式的变迁。 如何来描述这种变迁呢?以前的学习,一般需要预先在肚子里存储下足够的知识 ,必要时,就从海量的资讯中提取所需的部分。这种学习方式造就了很多“才高 八斗,学富五车”的大才子。但是,到了资讯领域大大超出“四书五经”的新时 期,预先无目的的吞下海量资讯的学习方式就有些不合时宜了。比方说,我们到 了大型的图书城,往往有一种不知所措的感觉。旧有的学习方式需要变更以适应 这个资讯爆炸的年代。目的明确的去学习,即先知道要学什么,然后有目的的去 找答案,这种方式看上去更加有效率。我不妨把这称为“即学式”,相应的, 旧有的称为“预学式”。 不过,“即学式”的实施是有前提的。首先,要求学习者拥有一个包罗万象的资 讯库,以供随时抽取各种目的资讯;其次,是需要一个强劲的资讯检索工具,以 便高效率的从资讯库中提取资讯。很明显,Internet可以充当那个海量的资讯库 ,而 搜引擎,则正是找光明之火的绝好工具。 “公欲善其事,必先利其器”。Internet只有一个,而搜引擎则有N多个。有搜 高手说,所谓搜,就是“在正确的地方使用正确的工具和正确的方法找正 确的内容”。但是,对于普通人而言,掌握诸多 搜引擎的可能性似乎不大。用 一两个相对强劲的具代表性的工具达到绝大多数搜目的更为人们所迫切希望。 不同的时期,涌现出不同的强者。就目前而言,我们非常幸运的有了: *****GOOGLE*****

16,549

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧