VB6如何在托盘中写入应用程序图标

来源:网络时间:2011-06-28 16:04:09

  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就自动弹出来了。

文章内容来源于网络,不代表本站立场,若侵犯到您的权益,可联系我们删除。(本站为非盈利性质网站) 联系邮箱:9145908@qq.com
最新攻略
1中国承诺从实现碳达峰到计划实现碳中和的时间是:() 2中国式法治现代化的功能使命包括坚持以法治引领和促进高质量发展、全面发展全过程人民民主、不断增强推进中国式现代化的法治精神力量、夯实促进共同富裕的法治基础、用最严密的法治保护生态环境。 3中国式法治现代化彰显人民至上的根本立场,就是在推进中国式法治现代化的过程中,要()。 4中国宝武已经开发出薄带连铸连轧技术,将成为轧制区域碳中和的重要工艺路线。() 5中国在第()届联合国大会一般性辩论上提出“中国将提高国家自主贡献力度,采取更加有力的政策和措施,二氧化碳排放力争于2030年前达到峰值,努力争取2060年前实现碳中和”:()。 6世界上首个关于全面控制二氧化碳等温室气体排放的国际公约是()。 7世界上没有普适的、唯一的法治道路,一个国家选择何种法治道路必须是一个国家、一个民族的人民从本国历史、现实和国情出发所作出的选择。 8专业知识技能{K},用()表示。 9专业、行业与就业之间没有必然的逻辑关系。() 10不用担心失业,不会被轻易解雇,收入总体稳定,不会因为技术变革而面临失业。这是哪一种职业价值观。() 11不影响燃烧过程的二氧化碳捕集技术是()。 12不合格控制的主要目的是()