vb minimizar a la bandeja
Opción explícita
'Declaración de API Win32
Declarar función Shell_NotifyIcon Lib "shell32 " Alias "Shell_ NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) Como booleano
'Constante utilizada para detectar iconos en los que se hace clic
Const pública WM _LBUTTONDBLCLK = &
Const pública WM_RBUTTONUP = &H205
' Constantes utilizadas para controlar iconos
Const pública NIM_ADD = &H0
Const pública NIM_ADD = &H0
'Como booleano' amp;H0
Const pública NIM_MODIFY = &H1
Const pública NIF_MESSAGE = &H1
Const pública NIM_DELETE = &H2
Const pública NIF_ICON = &H2
Const pública NIF_TIP = &H4
'ID utilizado como información de devolución de llamada
Const pública WM_MOUSEMOVE = &.H200 p>
' Utilizado por Shell_NotifyIcon
Tipo público NOTIFYICONDATA
cbSize As Long
hWnd As Long
uId As Largo
uFlags tan largo
ucallbackMessage tan largo
hIcon tan largo
szTip como cadena * 64
Tipo final
'Crear una variable de tipo NOTIFYICONDATA
Public TrayIcon As NOTIFYICONDATA
Estos códigos se copiarán en el formulario:
Dim RR As Boolean
Private Sub Form_Load()
'Formulario centrado
Me.Move (Screen.Width - Me.Width) / 2, (Screen.Width - Me.Width) .Height - Me.Height)Height - Me.Height) / 2
'Establece cbSize a la longitud de TrayIcon
TrayIcon.cbSize = Len(TrayIcon)
' El identificador de la ventana utilizada para procesar mensajes, es decir, este formulario
TrayIcon.hWnd = Me.hWnd
'Código de identificación del icono
TrayIcon.> ' Información sobre herramientas para el ícono: establece la información sobre herramientas que se mostrará
TrayIcon.szTip = App.Title & Chr$(0)
.
Title & Chr$(0)
'Agregue el ícono a la bandeja llamando a la API Shell_NotifyIcon
'NIM_ADD es una constante: agregue el ícono a la bandeja
Llamar a Shell_NotifyIcon(NIM_ADD, TrayIcon)
'No dejar que la aplicación aparezca en la lista de tareas de Windows
' App.TaskVisible = False
End Sub
Sub privado Form_MouseMove(Botón como entero, X como entero, Mayús como entero, Mayús como entero, X como entero) Mayús como entero, X como único, Y como único)
Mensaje estático siempre
'x es la posición actual del mouse en el eje x
Message = X / Screen.TwipsPerPixelX(NIM_ADD_TrayIcon)
'X es la posición actual del mouse en la posición x en el eje. Si RR = Falso, entonces
RR = Verdadero
Seleccionar mensaje de caso
' Haga doble clic con el botón izquierdo (esto abrirá un cuadro de diálogo Mostrar
' Haz clic derecho hacia arriba (aparecerá un menú)
Case WM_RBUTTONDBLCLK
Me.Show
' Haz clic derecho hacia arriba ( esto abrirá un menú)
p>Case WM_RBUTTONUP
' Me.Show
' Message = X / Screen.PopupMenu mnuPopUp
Finalizar selección
RR = False
Finalizar si
End Sub
Sub privado Form_QueryUnload(Cancelar como entero, UnloadMode como entero ) UnloadMode As Integer)
TrayIcon.cbSize = Len(TrayIcon)
TrayIcon.hWnd = Me.hWnd
TrayIcon.uId = vbNull
'Eliminar icono de bandeja
Llamar a Shell_NotifyIcon(NIM_DELETE, TrayIcon)
Finalizar sub
Sub privado Form_Resize()
Si Me.WindowState = vbMinimized y no RR, luego ocultarme
End Sub
.