Red de conocimiento informático - Problemas con los teléfonos móviles - Haga clic con el botón derecho en el icono de la bandeja para que aparezca el menú en vb, ¿cómo lograrlo?

Haga clic con el botón derecho en el icono de la bandeja para que aparezca el menú en vb, ¿cómo lograrlo?

Nota: Asegúrese de recordar que el nombre del menú creado debe ser coherente con el nombre en el código o modificar el nombre en el código; de lo contrario, aparecerá un mensaje de error. Hay un fragmento de código al final del código. Copie este código en el código del formulario y descomentelo. Eso es todo.

Pasos de creación:

1. Cree un nuevo proyecto y establezca las propiedades del formulario.

BoarderStyle es 1-Fixed single

MinButton es verdadero

ShowIntaskbar es falso

Copie el siguiente contenido del código de formulario en el cuadro de código de formulario del proyecto;

2. Agregue un módulo al proyecto y copie el código del módulo en el texto para copiar el código del módulo en el código del módulo.

3. editor, ingrese mnuTray en el nombre, título "menú contextual" y la casilla de verificación visible se establece en un estado no seleccionado, haga clic en Siguiente, haga clic en la flecha derecha, ingrese mnuTrayexit en el nombre y tenga el título "Salir"; ; haga clic en Siguiente, haga clic en la flecha derecha, ingrese mnuTrayxit en el nombre y tenga el título "Salir"; finalmente haga clic en Aceptar;

4. Haga clic en el botón "Inicio" en la barra de herramientas para ejecutar el programa;

5. Haga clic en el botón "Minimizar", que puede minimizar el programa. Haga clic en el botón minimizar para mostrar el icono en la bandeja y ocultar la ventana, es decir: minimizar en la barra de estado del sistema. Haga clic derecho en el icono de la bandeja para abrir el menú. Haga clic izquierdo en el icono de la bandeja para restaurar la ventana.

Cambiar el icono de la bandeja:

Método 1: Establecer el icono del formulario del proyecto, es decir, seleccionar el archivo *.ico personalizado en el icono de las propiedades del formulario. El código utilizará el ícono del formulario;

Método 2: use un cuadro de imagen para almacenar el ícono y asigne el identificador del cuadro de imagen al HIcon en Thedata. .end modificar o modificar directamente Thedata.HIcon=...HIcon=....

TheData.HIcon = Picture1.Picture.Handle 'Asigna el identificador de imagen del marco de fotos a TheData.HIcon

TheData.HIcon=...HIcon

Shell_NotifyIcon NIM_MODIFY, TheData

Muestra dinámicamente el icono de la bandeja:

Agrega un temporizador para esperar hasta el ícono alcanza un evento fijo que se activa cuando el valor cambia el ícono; restablezca Thedata.HIcon al nuevo ícono, luego use Shell_NotifyIcon NIM_MODIFY, TheData para modificar la visualización del ícono.

****************************************** Módulo código** **********************************************

Opción explícita

Público OldWindowProc siempre que

Público TheForm como formulario

Público TheMenu como menú

Público Const WM_USER = amp; H400

Const pública WM_LBUTTONUP = amp H202 'Número de mensaje del botón izquierdo

Const pública WM_MBUTTONUP = amp; Const WM_RBUTTONUP = amp; H205 'Número de información del botón derecho

Constante pública TRAY_CALLBACK = amp; H205 'Número de información del botón derecho

Constante pública TRAY_CALLBACK = amp; /p>

Constante pública TRAY_CALLBACK = (WM_USER 1001amp;) 'Número de mensaje

Const pública GWL_WNDPROC = (-4)

Const pública NIF_ICON = amp;H2 '

Const pública NIF_TIP = amp; H4

Const pública NIF_MESSAGE = amp; H1

Const pública NIM_ADD = amp; = amp. H1

Const pública NIM_DELETE = amp H2

Tipo público NOTIFYICONDATA 'Definir estructura NOTIFYICONDATA

cbSize As Long

hwnd Mientras

Uid Mientras

UFlags Mientras

UCallbackMessage Mientras

HIcon Mientras

SzTipAs String * 64

Tipo de fin

Público TheData As NOTIFYICONDATA 'Definir estructura objeto TheData

Público Declarar función CallWindowProc Lib "user32" Alias ​​​​"CallWindowProcA" ( ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Función de declaración pública SetWindowLong Lib "user32" Alias ​​​​"SetWindowLongA" (ByVal hwnd

Mientras, ByVal nIndex Mientras, ByVal dwNewLong Mientras) Mientras

Función de declaración pública Shell_NotifyIcon Lib "shell32.dll" Alias ​​​​"Shell_NotifyIconA" (ByVal dwMessage Mientras, lpData Como NOTIFYICONDATA) Mientras

p>

Función de declaración pública SetForegroundWindow Lib "user32" (ByVal hwnd As Long) durante el tiempo

Función pública NewWindowProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long , ByVal lParam As Long) As Long

'Proceso de bucle de mensajes de creación propia

If Msg = TRAY_CALLBACK Then

If lParam = WM_LBUTTONUP Then

Si TheForm.WindowState = vbMinimized Entonces

RemoveTray

TheForm.WindowState = vbNormal

TheForm.Show

TheForm.ShowFocus

TheForm.SetFocus

Descargar TheForm 'Descargar formulario

End Sub

************ ************************* Código final************************ ***** **************** ****