首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
首页 | JAVA | C# | VB | VB.NET | C/C++ | delphi | 工程管理 | 其他语言 | 论坛
各大城市软件开发培训、软件人才免费咨询热线:400-700-5807
 您现在的位置: 中国IT实验室 >> 桌面开发 >> VB >> 正文
VB6如何在拖托盘中写入应用程序图标
来源:ChinaItLab 作者:佚名 时间:2007-4-5

  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就自动弹出来了。
【责编:Lili】
中国IT教育热线咨询
相关文章
基于HOOK和MMF的Win密码渗透技术
解析VB的事件驱动编程
编写快速高效的VB程序
VB中运用反射原理优化程序代码
VB中数据集合对象的应用
递归过程在VB中的应用实例
VB/VB.NET/C#导出到Excel的方法
关于Visual Basic 9.0的动态标识符…
VB6如何在拖托盘中写入应用程序图标
用VB编程实现图像的熠熠生辉效果
推荐文章

 精彩友情推荐
·Asp源码 PHP源码
·CGI源码 JSP源码
·建站书籍教程
·服务器软件 .net源码
·建站工具软件
·IDC资讯大全
·机房品质万里行
·IDC托管必备知识
·全国IDC报价
·网站推广优化
最新更新 推荐文章
·框架:J2EE WEB应用架构分析…03-13
·几种VC++数据库开发技术的相对比…03-13
·利用C#实现标注式消息提示窗口03-13
·用C#创建COM对象03-13
·Visual C#多线程参数传递浅析…03-13
·Visual C#多线程参数传递浅析…03-13
·基于HOOK和MMF的Win密码渗透技术11-15
·Visual C++设计超强仿QQ自动伸缩…11-15
·Java SE 6.0实现高质量桌面集成开…11-15
·史玉柱东山再起幕后高人11-15
·用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