实现任务栏上的气球

Private Type NOTIFYICONDATA  '这个类形是参考网上VC程序改写的,VB提供的不是最新的
         cbSize As Long
         hWnd As Long
         uId As Long
         uFlags As Long
         uCallBackMessage As Long
         hIcon As Long
         szTip As String * 128
         dwState As Long
         dwStateMask As Long
         szInfo As String * 256
         uTimeout As Long
         szInfoTitle As String * 64
         dwInfoFlags As Long
End Type
     
      Private Const NIM_ADD = &H0
      Private Const NIM_MODIFY = &H1
      Private Const NIM_DELETE = &H2
      Private Const WM_MOUSEMOVE = &H200
      Private Const NIF_MESSAGE = &H1
      Private Const NIF_ICON = &H2
      Private Const NIF_TIP = &H4
      Private Const NIF_STATE = &H8
      Private Const NIF_INFO = &H10
     
      Private Const NIIF_INFO = &H1
      Private Const WM_LBUTTONDBLCLK = &H203
      Private Const WM_LBUTTONDOWN = &H201
      Private Const WM_LBUTTONUP = &H202
      Private Const WM_RBUTTONDBLCLK = &H206
      Private Const WM_RBUTTONDOWN = &H204
      Private Const WM_RBUTTONUP = &H205
      Private Declare Function Shell_NotifyIcon Lib "shell32"  Alias "Shell_NotifyIconA"  (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
      Dim nid As NOTIFYICONDATA
      Private Sub Command1_Click()
         nid.cbSize = Len(nid)
         nid.hWnd = Form1.hWnd
         nid.uId = vbNull
         nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE Or NIF_INFO
         nid.uCallBackMessage = WM_MOUSEMOVE
         nid.hIcon = Form1.Icon
         nid.szTip = "Taskbar Status Area Sample Program" & vbNullChar
         nid.dwInfoFlags = NIIF_INFO
         nid.uTimeout = 1000
        
         nid.szInfoTitle = "这是我想要的气球么?" & vbNullChar
         nid.szInfo = "·这是一个演示例子" & vbCrLf & "·看看换行没有" & vbCrLf & "·再试试换行没有" & vbNullChar
        
         Shell_NotifyIcon NIM_ADD, nid
      End Sub
      Private Sub Command2_Click()
         Shell_NotifyIcon NIM_DELETE, nid
      End Sub

      Private Sub Form_Load()
         Command1.Caption = "Add an Icon"
         Command2.Caption = "Delete Icon"
      End Sub
      Private Sub Form_Terminate()
         Shell_NotifyIcon NIM_DELETE, nid
      End Sub
      Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
          Dim msg As Long
          Dim sFilter As String
          msg = X / Screen.TwipsPerPixelX
          Select Case msg
             Case WM_LBUTTONDOWN
             Case WM_LBUTTONUP
             Case WM_LBUTTONDBLCLK
             CommonDialog1.DialogTitle = "Select an Icon"
             sFilter = "Icon Files (*.ico)|*.ico"
             sFilter = sFilter & "|All Files (*.*)|*.*"
             CommonDialog1.Filter = sFilter
             CommonDialog1.ShowOpen
             If CommonDialog1.FileName <> "" Then
                Form1.Icon = LoadPicture(CommonDialog1.FileName)
                nid.hIcon = Form1.Icon
                Shell_NotifyIcon NIM_MODIFY, nid
             End If
             Case WM_RBUTTONDOWN
                Dim ToolTipString As String
                ToolTipString = InputBox("Enter the new ToolTip:", _
                                  "Change ToolTip")
                If ToolTipString <> "" Then
                   nid.szTip = ToolTipString & vbNullChar
                   Shell_NotifyIcon NIM_MODIFY, nid
                End If
             Case WM_RBUTTONUP
             Case WM_RBUTTONDBLCLK
          End Select
      End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值