VBasicFacil
Principal - Enlaces - Codigo - Controles - API
Declaración
Declare Function Shell_NotifyIcon Lib"shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
Plataformas
Descripción
Envia un mensaje al sistema para añadir, modificar o eliminar un icono del TrayIcon.
Parámetros
dwMessage Identificador del mensaje enviado, puede tener uno de los siguientes valores.
NIM_ADD Añade un icono al TrayIcon.
NIM_DELETE Borra un icono del TrayIcon.
NIM_MODIFY Modifica un icono del TrayIcon.pnid Puntero a una estructura NOTIFYICONDATA. El contenido de la estructura depende de los valores de dwMessage.
Valor devuelto
Si la funcion falla devuelve 0, sino devuelve distinto de 0. Para saber mas
información del error usar la función GetLastError.
Ejemplo
| Se abre un formulario que al minimizarlo pasa al TrayIcon. Pondremos un Icono en el TrayIcon que podra ser verde o rojo según el menu emergente que aparece al pasar el raton sobre el icono. |
|
Formulario (Contiene dos PictureBox )
Option Explicit
Private Sub Form_Load()
Me.Show
Icono.cbSize = Len(Icono)
Icono.hwnd = Picture2.hwnd
Icono.uID = 1&
Icono.uFlags = NIF_MESSAGE Or NIF_ICON Or NIF_TIP
Icono.uCallbackMessage = WM_MOUSEMOVE
Icono.hIcon = Picture2.Picture
Icono.szTip = "TrayIcon Menu" & Chr$(0)
Shell_NotifyIcon NIM_ADD, Icono
End Sub
Private Sub Form_Resize()
' Ocultar el formulario si es minimizado
' Ocultar el icono del tray si el tamaño es normal
Select Case Me.WindowState
Case vbMinimized
Me.Hide
Shell_NotifyIcon NIM_ADD, Icono
Case vbNormal
Shell_NotifyIcon NIM_DELETE, Icono
End Select
End Sub
Private Sub mnuCerrar_Click()
Shell_NotifyIcon NIM_DELETE, Icono
End
End Sub
Private Sub mnuRojo_Click()
mnuRojo.Checked = True
mnuVerde.Checked = False
Me.Icon = Picture1.Picture
Icono.hIcon = Picture1.Picture
Icono.szTip = " Opcion Roja " & Chr$(0)
Shell_NotifyIcon NIM_MODIFY, Icono
End Sub
Private Sub mnuVerde_Click()
mnuVerde.Checked = True
mnuRojo.Checked = False
Me.Icon = Picture2.Picture
Icono.hIcon = Picture2.Picture
Icono.szTip = " Opcion verde " & Chr$(0)
Shell_NotifyIcon NIM_MODIFY, Icono
End Sub
Private Sub Picture2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lMessage As Long
Dim Result As Long
If Me.ScaleMode = vbPixels Then
'No necesita conversion
lMessage = X
Else
'Convertimos Pixels a Twips
lMessage = X / Screen.TwipsPerPixelX
End If
Select Case lMessage
Case WM_MOUSEMOVE
Case WM_LBUTTONDOWN
Case WM_LBUTTONUP
Form1.PopupMenu Form1.mnuMenu
Case WM_LBUTTONDBLCLK
Result = SetForegroundWindow(Me.hwnd)
Me.WindowState = vbNormal
Me.Show
Case WM_RBUTTONDOWN
Case WM_RBUTTONUP
Form1.PopupMenu Form1.mnuMenu
Case WM_RBUTTONDBLCLK
Result = SetForegroundWindow(Me.hwnd)
Me.WindowState = vbNormal
Me.Show
Case Else
End Select
End Sub
|
|
Modulo
Option Explicit
Public Declare Function Shell_NotifyIcon _
Lib "shell32.dll" _
Alias "Shell_NotifyIconA" _
(ByVal dwMessage As Long, _
lpData As NOTIFYICONDATA) As Long
Public Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Public Type NOTIFYICONDATA
cbSize As Long
hwnd As Long
uID As Long
uFlags As Long
uCallbackMessage As Long
hIcon As Long
szTip As String * 64
End Type
Global Icono As NOTIFYICONDATA
' Mensajes del Shell_NotifyIcon
Global Const NIM_ADD = &H0
Global Const NIM_MODIFY = &H1
Global Const NIM_DELETE = &H2
Global Const NIF_MESSAGE = &H1
Global Const NIF_ICON = &H2
Global Const NIF_TIP = &H4
' Mensajes que windows manda al programa
Public Const WM_MOUSEMOVE = &H200 'MouseMove message
Public Const WM_LBUTTONDOWN = &H201 'Button down
Public Const WM_LBUTTONUP = &H202 'Button up
Public Const WM_LBUTTONDBLCLK = &H203 'Double-click
Public Const WM_RBUTTONDOWN = &H204 'Button down
Public Const WM_RBUTTONUP = &H205 'Button up
Public Const WM_RBUTTONDBLCLK = &H206 'Double-click
|
| Descargar Codigo : NotifyIcon.zip |
VB.NETClase System.Windows.Forms.NotifyIcon |
Aplicaciones:
Ver también:
Categoría: Varios
Ultima actualización : 29 de noviembre de 2003 Copyright © 2003 Silared, s.l. correo-e : vbasicfacil@silared.com Site : www.vbasicfacil.com