Private Sub Form_Unload(Cancel As Integer) Cancel=true form.visible=false ''显示小图标 End Sub
Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
Dim TrayIcon As NOTIFYICONDATA, bolFlag As BooleanPrivate Sub mum_Minsize_Click() TrayIcon.cbSize = Len(TrayIcon) TrayIcon.hWnd = hWnd TrayIcon.uId = vbNull TrayIcon.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE TrayIcon.ucallbackMessage = WM_MOUSEMOVE TrayIcon.hIcon = Me.Icon '在系统栏添加拖盘 Call Shell_NotifyIcon(NIM_ADD, TrayIcon) Me.Hide End Sub
Option ExplicitPrivate Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" _ (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As BooleanPrivate Const WM_LBUTTONUP = &H202 Private Const WM_RBUTTONUP = &H205 Private Const NIM_ADD = &H0 Private Const NIM_MODIFY = &H1 Private Const NIF_MESSAGE = &H1 Private Const NIM_DELETE = &H2 Private Const NIF_ICON = &H2 Private Const NIF_TIP = &H4 Private Const WM_MOUSEMOVE = &H200Private 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 TypePrivate TrayIcon As NOTIFYICONDATAPrivate Sub Form_Resize() If Me.WindowState = 1 Then Me.Hide Me.WindowState = 0 MyTray End If
End SubPrivate Sub Form_Unload(Cancel As Integer) Cancel = True Me.Hide MyTray
End SubPrivate Sub MyTray() TrayIcon.cbSize = Len(TrayIcon) TrayIcon.hWnd = Me.hWnd TrayIcon.uId = vbNull TrayIcon.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE TrayIcon.ucallbackMessage = WM_MOUSEMOVE TrayIcon.hIcon = Me.Icon TrayIcon.szTip = "chinaboyzyq Tray test" & Chr$(0) Call Shell_NotifyIcon(NIM_ADD, TrayIcon) App.TaskVisible = False
End SubPrivate Sub RemoveTrayIcon() TrayIcon.cbSize = Len(TrayIcon) TrayIcon.hWnd = Me.hWnd TrayIcon.uId = vbNull Call Shell_NotifyIcon(NIM_DELETE, TrayIcon)End SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Static Message As Long Message = X / Screen.TwipsPerPixelX
Select Case Message Case WM_LBUTTONUP RemoveTrayIcon Me.Show End Select
End Sub
在窗口的QueryUnload事件中添加以下代码:Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Cancel = 1'将Cancel设定为非0的值,就可以阻止窗体关闭 Me.Hide'隐藏自己 Form_Resize'调用Resize事件的代码 End Sub然后外加上我的一个源码中的内容,就可以了,下载地址是http://jiluoxingren.download.csdn.net/user/JiLuoXingRen/all/1 找那个【VB最小化到系统托盘控件,配源码(最简单的代码)】源码,里面有如何将程序最小化到托盘的源码,如果你不想看那么多,只想实现功能,就直接看工程1,看里面的代码,把上面的代码复制到窗体里,然后运行刚好是你要的效果。压缩包里还有一个SysTray.OCX,看懂源码后,就可以在你的程序里打开不见对话框,然后浏览,找到SysTray.OCX,然后你就会看到工具箱里有你在源码中看到的csysTray控件了,照着源码用吧。
Private Sub Form_Unload(Cancel As Integer)
Cancel=true
form.visible=false
''显示小图标
End Sub
Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
Dim TrayIcon As NOTIFYICONDATA, bolFlag As BooleanPrivate Sub mum_Minsize_Click()
TrayIcon.cbSize = Len(TrayIcon)
TrayIcon.hWnd = hWnd
TrayIcon.uId = vbNull
TrayIcon.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
TrayIcon.ucallbackMessage = WM_MOUSEMOVE
TrayIcon.hIcon = Me.Icon
'在系统栏添加拖盘
Call Shell_NotifyIcon(NIM_ADD, TrayIcon)
Me.Hide
End Sub
Option ExplicitPrivate Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" _
(ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As BooleanPrivate Const WM_LBUTTONUP = &H202
Private Const WM_RBUTTONUP = &H205
Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIF_MESSAGE = &H1
Private Const NIM_DELETE = &H2
Private Const NIF_ICON = &H2
Private Const NIF_TIP = &H4
Private Const WM_MOUSEMOVE = &H200Private 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 TypePrivate TrayIcon As NOTIFYICONDATAPrivate Sub Form_Resize()
If Me.WindowState = 1 Then
Me.Hide
Me.WindowState = 0
MyTray
End If
End SubPrivate Sub Form_Unload(Cancel As Integer)
Cancel = True
Me.Hide
MyTray
End SubPrivate Sub MyTray()
TrayIcon.cbSize = Len(TrayIcon)
TrayIcon.hWnd = Me.hWnd
TrayIcon.uId = vbNull
TrayIcon.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
TrayIcon.ucallbackMessage = WM_MOUSEMOVE
TrayIcon.hIcon = Me.Icon
TrayIcon.szTip = "chinaboyzyq Tray test" & Chr$(0)
Call Shell_NotifyIcon(NIM_ADD, TrayIcon)
App.TaskVisible = False
End SubPrivate Sub RemoveTrayIcon()
TrayIcon.cbSize = Len(TrayIcon)
TrayIcon.hWnd = Me.hWnd
TrayIcon.uId = vbNull
Call Shell_NotifyIcon(NIM_DELETE, TrayIcon)End SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static Message As Long
Message = X / Screen.TwipsPerPixelX
Select Case Message
Case WM_LBUTTONUP
RemoveTrayIcon
Me.Show
End Select
End Sub
Cancel = 1'将Cancel设定为非0的值,就可以阻止窗体关闭
Me.Hide'隐藏自己
Form_Resize'调用Resize事件的代码
End Sub然后外加上我的一个源码中的内容,就可以了,下载地址是http://jiluoxingren.download.csdn.net/user/JiLuoXingRen/all/1
找那个【VB最小化到系统托盘控件,配源码(最简单的代码)】源码,里面有如何将程序最小化到托盘的源码,如果你不想看那么多,只想实现功能,就直接看工程1,看里面的代码,把上面的代码复制到窗体里,然后运行刚好是你要的效果。压缩包里还有一个SysTray.OCX,看懂源码后,就可以在你的程序里打开不见对话框,然后浏览,找到SysTray.OCX,然后你就会看到工具箱里有你在源码中看到的csysTray控件了,照着源码用吧。