有个现成的API可以用用,Picture3.DragIcon 的ICON属性设置为你想显示在系统托盘内的图标样子。Declare Function Shell_NotifyIconA Lib "SHELL32" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As LongType 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' commands & flags for NotifyIcons Global Const NIM_ADD = &H0& Global Const NIM_MODIFY = &H1 Global Const NIM_DELETE = &H2 Global Const NIF_MESSAGE = &H1 Global Const NIF_ICON = &H2 Global Const NIF_TIP = &H4 Global Const WM_MOUSEMOVE = &H200 Global ni As NOTIFYICONDATA Public result Private Sub Form_Load() ToolTip = "AIPTEST is runing ..." Dim result ni.cbSize = Len(ni) 'length of this structure ni.hwnd = Picture3.hwnd 'control to receive messages ni.uID = 0 ' uniqueID ni.uFlags = NIF_MESSAGE Or NIF_ICON Or NIF_TIP ' Operation Flags ni.uCallbackMessage = WM_MOUSEMOVE ' message to send to control ni.hIcon = Picture3.DragIcon ' handle to Icon ni.szTip = ToolTip + Chr$(0) ' Tool Tip
' 必须给提示图标分配一个唯一的ID号 ' so increment until creation is successful
Do ni.uID = ni.uID + 1 result = Shell_NotifyIconA(NIM_ADD, ni) Loop While result = 0end subPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Cancel = True Me.Hide End SubPrivate Sub Form_Resize() If Me.WindowState = 1 Then Me.Hide End SubPrivate Sub Exit_Click() result = Shell_NotifyIconA(NIM_DELETE, ni) Unload Me End End Sub
在VB6CDROOM:\COMMON\TOOLS\VB\UNSUPPRT\SYSTRAY
cbSize As Long
hwnd As Long
uID As Long
uFlags As Long
uCallbackMessage As Long
hIcon As Long
szTip As String * 64
End Type' commands & flags for NotifyIcons
Global Const NIM_ADD = &H0&
Global Const NIM_MODIFY = &H1
Global Const NIM_DELETE = &H2
Global Const NIF_MESSAGE = &H1
Global Const NIF_ICON = &H2
Global Const NIF_TIP = &H4
Global Const WM_MOUSEMOVE = &H200
Global ni As NOTIFYICONDATA
Public result
Private Sub Form_Load()
ToolTip = "AIPTEST is runing ..."
Dim result
ni.cbSize = Len(ni) 'length of this structure
ni.hwnd = Picture3.hwnd 'control to receive messages
ni.uID = 0 ' uniqueID
ni.uFlags = NIF_MESSAGE Or NIF_ICON Or NIF_TIP ' Operation Flags
ni.uCallbackMessage = WM_MOUSEMOVE ' message to send to control
ni.hIcon = Picture3.DragIcon ' handle to Icon
ni.szTip = ToolTip + Chr$(0) ' Tool Tip
' 必须给提示图标分配一个唯一的ID号
' so increment until creation is successful
Do
ni.uID = ni.uID + 1
result = Shell_NotifyIconA(NIM_ADD, ni)
Loop While result = 0end subPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Cancel = True
Me.Hide
End SubPrivate Sub Form_Resize()
If Me.WindowState = 1 Then Me.Hide
End SubPrivate Sub Exit_Click()
result = Shell_NotifyIconA(NIM_DELETE, ni)
Unload Me
End
End Sub