VB实现NotifyIcon

原创 2006年05月26日 12:44:00

申明

Option Explicit

'NotifyIcon---与托盘图标相关的申明---开始
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 Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1
Public Const NIM_DELETE = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4

Public Const WM_LBUTTONDBLCLK = &H203
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_LBUTTONUP = &H202
Public Const WM_MBUTTONDBLCLK = &H209
Public Const WM_MBUTTONDOWN = &H207
Public Const WM_MBUTTONUP = &H208
Public Const WM_RBUTTONDBLCLK = &H206
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_RBUTTONUP = &H205

Public Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean

Public TrayI As NOTIFYICONDATA

'NotifyIcon---与托盘图标相关的申明---结束

Form中调用

'托盘图标---开始
    trayMenu.Visible = False
    'Image1(0).Visible = False
    TrayI.cbSize = Len(TrayI)
    'TrayI.hWnd = Picture1.hWnd     'Link the trayicon to this picturebox
    TrayI.hWnd = Me.hWnd
    TrayI.uId = 1&
    TrayI.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
    TrayI.ucallbackMessage = WM_LBUTTONDOWN
    TrayI.hIcon = Image1(0).Picture
    TrayI.szTip = Me.Caption & Chr$(0)
    'Create the icon
    Shell_NotifyIcon NIM_ADD, TrayI
'托盘图标---结束

点击托盘图标

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
   
'当点击了托盘图标后---开始
    Dim Msg
        Msg = X / Screen.TwipsPerPixelX
    If Msg = WM_LBUTTONDBLCLK Then  'If the user dubbel-clicked on the icon
        Me.WindowState = 0
        Me.Show
    End If
   
    If Msg = WM_RBUTTONUP Then  'Right click
        Me.PopupMenu trayMenu
    End If
'当点击了托盘图标后---结束

End Sub

退出程序时

'当程序退出时,处理托盘图标---开始
    TrayI.cbSize = Len(TrayI)
    TrayI.hWnd = Me.hWnd
    TrayI.uId = 1&
    Shell_NotifyIcon NIM_DELETE, TrayI  'Delete NotifyIcon
   
'当程序退出时,处理托盘图标---结束

用VB实现托盘图标+气泡提示的效果

第一步:首先新建一个模块,保存以下代码:Option Explicit使用高分辨率图标所用的APIPrivate Const LR_LOADFROMFILE = &H10Private Const L...
  • guoquan2003
  • guoquan2003
  • 2007年10月30日 17:53
  • 4430

【VB.NET】实现动态托盘图标

前言 NotifyIcon 代码实现 需要的控件 定义类 说明 属性设置 方法类 对于窗体主要控件的编写 对于NotifyIcon的编写 对于Timer的编写 总结 前言有时候觉得也想给自己做的小软件...
  • SugaryoTT
  • SugaryoTT
  • 2016年02月21日 16:00
  • 1911

C#如何让notifyIcon闪烁

最经在写一个网络提醒程序,想让有消息到达时,能够让任务栏图标闪烁,类似QQ消息提醒一样,这里用到vs中的NotifyIcon组件,还有定时器组件Timer 首先要有两个图标图像,一个最好是透明的,bl...
  • henulwj
  • henulwj
  • 2013年05月27日 21:03
  • 6686

windows程序托盘图标以及消息提示--基本知识(NOTIFYICONDATA)

首先介绍一下基本知识: NOTIFYICONDATA结构体,语法如下:typedef struct _NOTIFYICONDATA { DWORD cbSize; HWND hWnd; UINT u...
  • wangshubo1989
  • wangshubo1989
  • 2015年10月31日 14:17
  • 4082

关于系统响应函数OnSysCommand及托盘Shell_NotifyIcon()等

void CTestDlg::OnSysCommand(UINT nID, LPARAM lParam)这个函数响应系统控制菜单的命令.(即左上角图标处)。OnSysCommand:The frame...
  • zgbsoap
  • zgbsoap
  • 2006年03月24日 00:25
  • 7078

NotifyIcon

  • 2016年04月07日 10:42
  • 62KB
  • 下载

微软 VB2010 源码包

  • 2013年05月22日 02:21
  • 9.16MB
  • 下载

C# WinForm中NotifyICon控件的用法【1】

平时我们在使用QQ的时候,QQ主界面隐藏到系统托盘里,需要调用的时候在点击出来,很好很强大。 那么我们在C#中如何实现呢。本节将来一起探讨一下。其实就是NotifyICon控件的作用。那么您也会问那么...
  • u010276845
  • u010276845
  • 2013年11月05日 18:13
  • 9331

windows程序托盘图标以及消息提示--基本知识(Shell_NotifyIcon)

之前说了NOTIFYICONDATA结构体的一些内容,下面继续。Shell_NotifyIcon函数,向任务栏的状态栏发送一个消息。原型如下:BOOL Shell_NotifyIcon(DWORD d...
  • wangshubo1989
  • wangshubo1989
  • 2015年10月31日 14:26
  • 4164

使用NotifyIcon类在通知栏创建进程的快捷图标

示例代码 using System; using System.Drawing; using System.Linq; using System.Windows.Forms; namespa...
  • tiana0
  • tiana0
  • 2014年03月22日 22:34
  • 2582
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VB实现NotifyIcon
举报原因:
原因补充:

(最多只允许输入30个字)