0% encontró este documento útil (0 votos)
102 vistas3 páginas

Uso de Shell_NotifyIcon en VB

Este documento explica cómo colocar un icono en la barra de notificaciones de Windows usando Visual Basic. Declara constantes y una función para manipular el icono de notificación. Luego, en el evento Form_Load, se añade el icono a la barra de notificaciones estableciendo su apariencia e identificador. Al cerrar el formulario, se elimina el icono llamando a la función con la constante NIM_DELETE. Al pasar el ratón sobre el icono, envía mensajes para mostrar un menú contextual o formulario principal.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
102 vistas3 páginas

Uso de Shell_NotifyIcon en VB

Este documento explica cómo colocar un icono en la barra de notificaciones de Windows usando Visual Basic. Declara constantes y una función para manipular el icono de notificación. Luego, en el evento Form_Load, se añade el icono a la barra de notificaciones estableciendo su apariencia e identificador. Al cerrar el formulario, se elimina el icono llamando a la función con la constante NIM_DELETE. Al pasar el ratón sobre el icono, envía mensajes para mostrar un menú contextual o formulario principal.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd

Shell_NotifyIcon

Una manera fcil de colocar un icono en la ventana de


notificacin de Windows
Fecha: 22 de febrero de 2004 (23/Feb/2004)
Autor: Pitillos Jalimore@[Link]

Explicacin Shell_NotifyIcon
Yo personalmente normalmente declaro todas las constantes y la funcin en un modulo como
publico para poder modificar el icono desde cualquier otro form pero para el ejemplo decid
ponerlo todo de corrido.
A continuacin sigue cdigo en Visual Basic:

Option Explicit
Private Type NOTIFYICONDATA ' declaracion del tipo de datos para
notificar el icono
cbSize As Long
hwnd As Long
uID As Long
uFlags As Long
uCallbackMessage As Long
hIcon As Long
szTip As String * 64
End Type
'constantes relacionas con el raton
Private Const WM_RBUTTONUP = &H205
Private Const WM_LBUTTONDBLCLK = &H203
Private Const WM_MOUSEMOVE = &H200
'constantes de lo que queremos que muestre el icono
Private Const NIF_ICON = &H2 ' queremos que muestre un icono
Private Const NIF_MESSAGE = &H1 ' queremos que nos envie un mensaje
Private Const NIF_TIP = &H4 ' queremos que muestre un texto al
posicionarnos encima
'constantes para aadir, borrar o modificar el icono
Private Const NIM_ADD = &H0 ' aadirlo a la barra de tareas
Private Const NIM_DELETE = &H2 ' borrarlo de la barra de tareas
Private Const NIM_MODIFY = &H1 ' modificarlo
' declaracion de la funcion
Private Declare Function Shell_NotifyIcon Lib "shell32" Alias
"Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As

NOTIFYICONDATA) As Long
Dim icono As NOTIFYICONDATA
Private Sub Form_Load()
[Link] ' Oculto el Form
[Link] = Len(icono) ' Tamao de la variable
[Link] = [Link] ' icono mostrado en la barra
[Link] = [Link] ' manipulador del proceso
[Link] = WM_MOUSEMOVE ' mensaje que envia al
pasar el mouse por encima
[Link] = "Icono en la barra de tareas" & Chr$(0) ' mensaje que
muestra al posicionar el raton encima el Chr$(0) es por los strings de C++
[Link] = NIF_ICON Or NIF_MESSAGE Or NIF_TIP ' los eventos
que va a realizar
[Link] = 1& ' un identificador del icono
Shell_NotifyIcon NIM_ADD, icono ' llamamos a la funcion para aadirlo
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Shell_NotifyIcon NIM_DELETE, icono ' al cerrar destruimos el icono
End Sub
Private Sub form_MouseMove(Button As Integer, Shift As Integer, x As
Single, Y As Single)
Static rec As Boolean, MSG As Long
MSG = x / [Link] ' forma facil de obtener el lwparam
para usarlo en vb (es que soy programador de C)
If rec = False Then ' use la variable rec para saber si ya se esta mostrando
el menu y que no aparezca dos veces
rec = True ' activo la variable para saber que ya voy a mostrar el menu
Select Case MSG
Case WM_LBUTTONDBLCLK: ' doble click con el boton
izquierdo del raton
Frm_principal.Show ' mostramos el form principal
'frm_Principal.Show
Case WM_RBUTTONUP:
[Link] menu ' click con el boton secundario,
mostramos el menu correspondiente
End Select
rec = False
End If
End Sub
Private Sub mnu_Click(Index As Integer)
Select Case Index

Case 0
Frm_principal.Show
Case 1
Unload Frm_principal
Case 3
Unload Frm_principal
Unload Me
End Select
End Sub
Bueno eso es todo, lo he comentado al mximo para que no haya pegas.

También podría gustarte