Haga clic con el botón derecho en el icono de la bandeja para que aparezca el menú en vb, ¿cómo lograrlo?
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; p>
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 p>
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** ********************************************** p>
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 ' p>
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************************ ***** **************** ****