Cómo minimizar un formulario en la bandeja en vb
2 Menú: Proyecto - Agregar módulo y presione "Abrir". Esto agregará un nuevo módulo, asígnele el nombre Módulo1 y guarde. como Módulo1 .Bas.
3. Escriba el siguiente código en el Módulo1:
Opción Explícita
Bas pública
3. :
Opción explícita
Const pública MAX_TOOLTIP como entero = 64
Const pública NIF_ICON = &H2
Const pública NIF_MESSAGE = H1 p>
Const pública NIF_TIP = H4
Const pública NIM_ADD = H0
Const pública NIM_DELETE = H2
Const pública WM_MOUSEMOVE = amp; p>
Const pública WM_LBUTTONDOWN = amp; H201
Const pública WM_LBUTTONUP = amp; H202
Const pública WM_LBUTTONDBLCLK = amp; = amp; H204
Const pública WM_RBUTTONUP = amp; H205
Const pública WM_LBUTTONDOWN = amp; >Const pública WM_LBUTTONDOWN = H208H205
Const pública WM_RBUTTONDBLCLK = H206
Const pública SW_RESTORE = 9
Const pública SW_HIDE = 0
Pública nfIconData Como NOTIFYICONDATA
Tipo público NOTIFYICONDATA
cbSize Mientras
hWnd Mientras
uID Como
uFlags Mientras
uCallbackMessage Mientras
hIcon Mientras
szTip Como cadena * MAX_TOOLTIP
Tipo de fin
Función de declaración pública ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) Mientras
Función de declaración pública Shell_NotifyIcon Lib "shell32.dll" alias "Shell_ NotifyIconA" (ByVal dwMessage As Long, lpData Como NOTIFYICONDATA) Mientras tanto
'4. Escribe el siguiente código en el evento de carga de Form1:
Private Sub Form_Load()
' Ahora coloca el programa en la bandeja del sistema = == =================================Comience la bandeja del sistema
Con nfIconData
.hWnd = Me.NotifyIconA (ByVal dwMessage As Long)
'5.hWnd
.uID = Me.Icon
.uFlags = NIF_ICON O NIF_MESSAGE O NIF_TIP
.uCallbackMessage = WM_MOUSEMOVE
.hIcon = Me.Icon.Handle
'Define la visualización del mouse que se muestra cuando el mouse está movido a la bandeja.Title
.szTip = App.Title "(Version " amp; App.Major amp; "." amp; App.Minor amp; "." amp; App.Revision amp; ") " amp; vbNullChar
.cbSize = Len(nfIconData)
Finalizar con
Llamar a Shell_NotifyIcon(NIM_ADD, nfIconData)
'= ================================================= == ==========Fin de la bandeja del sistema
Me.
End Sub
'5. Escribe el siguiente código en QueryUnload. evento de Form1:
Sub privado Form_QueryUnload(Cancelar como entero, UnloadMode como entero)
Llamar a Shell_NotifyIcon(NIM_DELETE, nfIconData)
End Sub
'6. Escribe el siguiente código en el evento MouseMove de Form1:
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Atenuar lMsg como único
lMsg = X / Screen.TwipsPerPixelX
Seleccionar caso lMsg
Caso WM_LBUTTONUP
' MsgBox "Por favor, a la derecha -¡Haz clic en el icono! " , vbInformación, "En vivo...".
, vbInformation, "Live Podcasting Expert"
'Haga clic en el botón izquierdo para mostrar el formulario
ShowWindow Me.hWnd, SW_RESTORE
'El propósito del siguiente dos oraciones es mostrar la ventana en el nivel superior de la ventana
'Me.Show
'Me.SetFocus
''Case WM_RBUTTONUP
''PopupMenu MenuTray 'Si hace clic con el botón derecho en el icono de la bandeja del sistema, aparecerá el menú MenuTray
''Case WM_MOUSEMOVE
''Case WM _LBUTTONDOWN p>
''Caso WM_LBUTTONDBLCLK
''Caso WM_RBUTTONDOWN
''Caso WM_RBUTTONDBLCLK
''Caso Else
Fin Seleccione
End Sub
7. Ahora guarde el programa y ejecútelo para ver si se agrega un ícono de proyecto a la bandeja del sistema. Haga clic en el icono y Form1 aparecerá automáticamente.
Respuesta: zheng0823 - Nivel Gerente 5 8-9 18:23
Evaluación de la respuesta del interrogador:
3Q 3Q.
La calificación está cerrada Actualmente hay 0 calificaciones
Buena
50 (0) Mala
50 (0)
Otra respuesta*. ** 2
disco, es decir, después de minimizar el programa, oculte el icono del programa en la barra de tareas en la esquina inferior derecha de la pantalla. Este método de minimización ahorra espacio que el método de minimización normal, por lo que es muy popular y muchos programas tienen esta característica. En VB, las funciones API se pueden usar para implementar la función de bandeja, pero es más complicado y no muy operable. Aquí presentamos un método muy simple y fácil de usar: el método de control.
COMMON\TOOLS\VB\UNSUPPRT\SYSTRAY
Hablando de controles, puede que fruncas el ceño: ¿Dónde encontrarlos? ¡no te preocupes! ¡El control está en su disco de instalación de VB! Sin embargo, tienes que lidiar con ello: busca un directorio llamado Systray en la carpeta de herramientas, cópialo al disco duro, abre el proyecto en este directorio con VB y haz algunas mejoras si es necesario (como cambiar íconos, agregar funciones , etc.), luego compílelo en un control ocx y asígnele el nombre que desee. Para facilitar su uso, es mejor compilarlo en el directorio Windows\System. Bien, ahora podemos usar este control en el programa para implementar fácilmente la función de bandeja. No necesito decirte cómo agregar este control, ¿verdad?
La propiedad más importante de este control es la propiedad InTray: configurarla en True hace que el icono del programa aparezca en el lado derecho de la barra de tareas, mientras que configurarla en False elimina el icono de la barra de tareas. Además, existen propiedades de ícono TrayIcon (el estilo del ícono cuando el programa aparece en la tarea), propiedades de TrayTip (el carácter de información sobre herramientas que aparece cuando el mouse se mueve sobre el ícono), etc., todas las cuales son propiedades familiares que podemos ver de un vistazo.
Los eventos importantes de este control son varios eventos de mouse de uso común: presionar, soltar, mover y hacer doble clic. El propósito de programación de estos eventos es controlar los programas en la barra de tareas. Descubrirás que esto también es muy sencillo, por lo que no entraré en detalles.
Aquí tienes un ejemplo. Ejecute este ejemplo, haga clic en el botón minimizar, la interfaz del programa desaparece y el ícono del programa (exactamente el ícono del control CsysTray) aparece en el lado derecho de la barra de tareas, haga clic en el ícono en el lado derecho de la barra de tareas y el programa; vuelve a su estado inicial.
'Minimizar el programa al lado derecho de la barra de tareas
Private Sub Form_Resize()
Si Me.WindowState = 1 Entonces 'Si el programa está minimizado , Luego -
cSysTray1 .InTray = True 'Ocultar en la barra de tareas
Me.WindowState = 1 Luego 'Si el programa está minimizado, entonces -
CsysTray1 . InTray = True 'Ocultar en la barra de tareas
Me.WindowState = 1 Then 'Si el programa está minimizado, entonces Visible = False 'Hacer invisible la interfaz del programa
End If
End Sub
'Restaurar el programa a la pantalla
Private Sub CsysTray1_MouseDown( Button As Integer, Id As Long)
Me.WindowState = 0 'Devuelve el programa al estado normal
Me.Visible = True 'Eliminar el icono de la barra de tareas
cSysTray1.InTray = False 'Hacer visible la interfaz del programa
End Sub
Encuestado: Primavera de flor de durazno - Aprendiz de magia Nivel 2 8-9 18:36
Tipo privado NOTIFYICONDATA
cbSize As Long
hwnd mientras dure
uId mientras dure
uFlags mientras dure
ucallbackMessage mientras dure
hIcon mientras dure
szTip As String * 64
Tipo de fin
Const privada NIM_ ADD = amp H0
Const privada NIM_MODIFY = amp; >
Const privada NIM_DELETE = amp;H2
Const privada WM_LButtonDown = amp;H204
Const privada NIF_MESSAGE = amp;H1
Const privada NIF_ICON = amp;H2
Private Const NIF_TIP = &H4
Función de declaración privada Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage siempre, pnid como NOTIFYICONDATA) como booleano p>
Declaración privada Sub Sleep Lib "kernel32" (ByVal dwMillisegundos mientras)
Atenuar como NOTIFYICONDATA