首页 | 互联网 | IT动态 | 网络设备 | 服务器 | IDC | 安全 | Cisco | Windows | Linux | Java | .Net | Oracle | CIW | 华为 | 专题
IT技术 | 网页设计 | 平面设计 | 电子书下载 | 教学视频 | 方案 | 数字网校 | 直播室 | 虚拟考场 | 面授培训 | 搜索 | 博客 | 沙龙 | 论坛
首页 | JAVA | C# | VB | VB.NET | C/C++ | delphi | 工程管理 | 其他语言 | 论坛
免费注册一站通帐号,参与直播、论坛、下载、博客、网摘、评论,展现我的风采!
您现在的位置: 中国IT实验室 >> 桌面开发 >> VB >> 文章正文
VB6如何在拖托盘中写入应用程序图标
来源:中国IT实验室收集整理  时间:2007-6-6

  1、新建立一个VB6工程,将Form1的ShowInTaskBar属性设置为False
  
  2、菜单:工程--添加模块 按“打开”这样就添加了一个新模块,名为Module1,保存为Module1.bas
  
  3、在Module1中写下如下代码:
  
  Option Explicit
  
  Public Const MAX_TOOLTIP As Integer = 64
  Public Const NIF_ICON = &H2
  Public Const NIF_MESSAGE = &H1
  Public Const NIF_TIP = &H4
  Public Const NIM_ADD = &H0
  Public Const NIM_DELETE = &H2
  Public Const WM_MOUSEMOVE = &H200
  Public Const WM_LBUTTONDOWN = &H201
  Public Const WM_LBUTTONUP = &H202
  Public Const WM_LBUTTONDBLCLK = &H203
  Public Const WM_RBUTTONDOWN = &H204
  Public Const WM_RBUTTONUP = &H205
  Public Const WM_RBUTTONDBLCLK = &H206
  
  Public Const SW_RESTORE = 9
  Public Const SW_HIDE = 0
  
  Public nfIconData As 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 * MAX_TOOLTIP
  End Type
  
  Public Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
  Public Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
  
  4、在Form1的Load事件中写下如下代码:
  
  Private Sub Form_Load()
  
  '以下把程序放入System Tray====================================System Tray Begin
  With nfIconData
  .hWnd = Me.hWnd
  .uID = Me.Icon
  .uFlags = NIF_ICON Or NIF_MESSAGE Or NIF_TIP
  .uCallbackMessage = WM_MOUSEMOVE
  .hIcon = Me.Icon.Handle
  '定义鼠标移动到托盘上时显示的Tip
  .szTip = App.Title + "(版本 " & App.Major & "." & App.Minor & "." & App.Revision & ")" & vbNullChar
  .cbSize = Len(nfIconData)
  End With
  Call Shell_NotifyIcon(NIM_ADD, nfIconData)
  '=============================================================System Tray End
  Me.Hide
  End Sub
  
  5、在Form1的QueryUnload事件中写入如下代码:
  
  Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  Call Shell_NotifyIcon(NIM_DELETE, nfIconData)
  End Sub
  
  6、在Form1的MouseMove事件中写下如下代码:
  
  Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Dim lMsg As Single
  lMsg = X / Screen.TwipsPerPixelX
  Select Case lMsg
  Case WM_LBUTTONUP
  'MsgBox "请用鼠标右键点击图标!", vbInformation, "实时播音专家"
  '单击左键,显示窗体
  ShowWindow Me.hWnd, SW_RESTORE
  '下面两句的目的是把窗口显示在窗口最顶层
  'Me.Show
  'Me.SetFocus
  '' Case WM_RBUTTONUP
  '' PopupMenu MenuTray '如果是在系统Tray图标上点右键,则弹出菜单MenuTray
  '' Case WM_MOUSEMOVE
  '' Case WM_LBUTTONDOWN
  '' Case WM_LBUTTONDBLCLK
  '' Case WM_RBUTTONDOWN
  '' Case WM_RBUTTONDBLCLK
  '' Case Else
  End Select
  End Sub
  
  7、现在将程序保存起来运行看看系统托盘处是否增加了一个本工程的图标。单击此图标,Form1就自动弹出来了。
【责编:runlz】

中国IT教育热线咨询

相关文章
解析VB的事件驱动编程
编写快速高效的VB程序
VB中运用反射原理优化程序代码
VB中数据集合对象的应用
递归过程在VB中的应用实例
VB/VB.NET/C#导出到Excel的方法
关于Visual Basic 9.0的动态标识符
用VB编程实现图像的熠熠生辉效果
推荐文章
· 用C#创建COM对象
· IT管理十大失误及其对策
· VC中利用MFC设计绘图程序初步
· JAVA中对象创建和初始化过程
· C语言中的位域的使用
· 浅谈Java桌面应用程序开发
· C#的前途如何?
· 几种VC++数据库开发技术的相对比较
 精彩友情推荐
·锐捷交换机报价
·锐捷交换机
·锐捷网络网络交换机
·smc交换机
·smc交换机报价
·IDC资讯大全
·机房品质万里行
·IDC托管必备知识
·全国IDC报价
·网站推广优化
最新更新 推荐文章
·Visual Basic 9.0隐式类型的局部…09-30
·JMX+J2SE5.0实现Web应用的安全管…09-30
·多线程、Socket技术及委托技术的…09-21
·Visual C#多线程参数传递浅析09-21
·浅谈Java中利用JCOM实现仿Excel编…09-21
·基于Java的界面布局DSL的设计与实…09-21
·Java开发中的事件驱动模型实例详…09-21
·并发工程原则应用到软件项目中09-06
·Delphi初学者应小心的六大陷阱09-06
·VC开发多语言界面支持的简单方法09-06
·用C#创建COM对象09-06
·用C#创建COM对象09-06
·IT管理十大失误及其对策08-30
·VC中利用MFC设计绘图程序初步08-23
·JAVA中对象创建和初始化过程08-23
·C语言中的位域的使用08-09
·浅谈Java桌面应用程序开发08-09
·C#的前途如何?08-02
·几种VC++数据库开发技术的相对比较07-12
·用Visual C#实现网络封包监视07-12
·VB.NET中的TextBox控件详解07-12
·VB.NET实现PC与掌上电脑PPC的双向通信07-05
  培训中心