vb的光盘上有一个托盘的控件源代码,名字是systray
自己慢慢研究吧

解决方案 »

  1.   

    这里面有一个例子:http://www.banasoft.com/DownLoad/BNHkLib.exe
      

  2.   

    摘自MSDN
          'Declare a user-defined variable to pass to the Shell_NotifyIcon
          'function.
          Private 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      'Declare the constants for the API function. These constants can be
          'found in the header file Shellapi.h.      'The following constants are the messages sent to the
          'Shell_NotifyIcon function to add, modify, or delete an icon from the
          'taskbar status area.
          Private Const NIM_ADD = &H0
          Private Const NIM_MODIFY = &H1
          Private Const NIM_DELETE = &H2      'The following constant is the message sent when a mouse event occurs
          'within the rectangular boundaries of the icon in the taskbar status
          'area.
          Private Const WM_MOUSEMOVE = &H200      'The following constants are the flags that indicate the valid
          'members of the NOTIFYICONDATA data type.
          Private Const NIF_MESSAGE = &H1
          Private Const NIF_ICON = &H2
          Private Const NIF_TIP = &H4      'The following constants are used to determine the mouse input on the
          'the icon in the taskbar status area.      'Left-click constants.
          Private Const WM_LBUTTONDBLCLK = &H203  'Double-click
          Private Const WM_LBUTTONDOWN = &H201    'Button down
          Private Const WM_LBUTTONUP = &H202      'Button up      'Right-click constants.
          Private Const WM_RBUTTONDBLCLK = &H206  'Double-click
          Private Const WM_RBUTTONDOWN = &H204    'Button down
          Private Const WM_RBUTTONUP = &H205      'Button up      'Declare the API function call.
          Private Declare Function Shell_NotifyIcon Lib "shell32" _
            Alias "Shell_NotifyIconA" _
            (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean      'Dimension a variable as the user-defined data type.
          Dim nid As NOTIFYICONDATA      Private Sub Command1_Click()
            'Click this button to add an icon to the taskbar status area.        'Set the individual values of the NOTIFYICONDATA data type.
            nid.cbSize = Len(nid)
            nid.hWnd = Form1.hWnd
            nid.uId = vbNull
            nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
            nid.uCallBackMessage = WM_MOUSEMOVE
            nid.hIcon = Form1.Icon
            nid.szTip = "Taskbar Status Area Sample Program" & vbNullChar        'Call the Shell_NotifyIcon function to add the icon to the taskbar
            'status area.
            Shell_NotifyIcon NIM_ADD, nid
          End Sub      Private Sub Command2_Click()
            'Click this button to delete the added icon from the taskbar
            'status area by calling the Shell_NotifyIcon function.
            Shell_NotifyIcon NIM_DELETE, nid
          End Sub      Private Sub Form_Load()
            'Set the captions of the command button when the form loads.
            Command1.Caption = "Add an Icon"
            Command2.Caption = "Delete Icon"
          End Sub      Private Sub Form_Terminate()
            'Delete the added icon from the taskbar status area when the
            'program ends.
            Shell_NotifyIcon NIM_DELETE, nid
          End Sub      Private Sub Form_MouseMove _
            (Button As Integer, _
              Shift As Integer, _
              X As Single, _
              Y As Single)
              'Event occurs when the mouse pointer is within the rectangular
              'boundaries of the icon in the taskbar status area.
              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