Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo minimizar un formulario en la bandeja en vb

Cómo minimizar un formulario en la bandeja en vb

1. Cree un nuevo proyecto VB6, establezca la propiedad ShowInTaskBar de Form1 en False

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

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

''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

Declaración privada Sub Sleep Lib "kernel32" (ByVal dwMillisegundos mientras)

Atenuar como NOTIFYICONDATA