
09/01/2006, 07:01
|
 | Moderador | | Fecha de Ingreso: abril-2005 Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 20 años Puntos: 839 | |
Cita:
Iniciado por (Pato)² Hola, tengo una aplicacion casi terminada, salvo por una cosa.
Esta pone un icono en el systray como me lo explicaron aca: http://www.forosdelweb.com/showthread.php?t=349547
El problema es que el icono sea algo intermitente, osea que cambie de uno a otro.
Alguien sabe como hace eso?
Muchas Gracias! Bueno, modifiqué el código pa' q' pudiera modificarse el Ícono, lo único q' necesitas es poner 2 Pictures, Picture1 y Picture2 en los cuales pondrás los Iconos q' hayan de Intercambiarse y otro Picture: sysTrayImage con todas las propiedades por Defecto... Además de un Timer cuya propiedad Interval será la frecuencia con la q' quieres q' se intercambien los Íconos (y los Menús claro, el Emergente, para Salir, Ocultar y Mostrar  ).
En un Módulo:
Código:
Public Const SHOW_ICON As Long = &H0&
Public Const MODIFY_ICON As Long = &H1&
Public Const HIDE_ICON As Long = &H2&
Public Const RCLICK As Long = &H205
Public Const DBLCLICK = &H203
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
Private Declare Function Shell_NotifyIconA Lib "SHELL32" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
Public Function SysTrayIcon(Picture As PictureBox, ByVal ShowMode As Long, ByVal Name As String)
Dim SysIcon As NOTIFYICONDATA
SysIcon.cbSize = Len(config)
SysIcon.hwnd = Picture.hwnd
SysIcon.uId = 1
SysIcon.uFlags = &H1 Or &H2 Or &H4
SysIcon.uCallBackMessage = &H200
SysIcon.hIcon = Picture.Picture
SysIcon.szTip = Name & String(64, Chr(0))
SysTrayIcon = Shell_NotifyIconA(ShowMode, SysIcon)
End Function
En el Form:
Código:
Private CancelUnload As Integer
Private Sub Form_Load()
CancelUnload = -1
Set sysTrayImage.Picture = Picture1.Picture
SysTrayIcon sysTrayImage, SHOW_ICON, "Proyecto 1"
cancelar = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
Cancel = CancelUnload
Visible = False
If Cancel = 0 Then
SysTrayIcon sysTrayImage, HIDE_ICON, "Proyecto 1"
End If
End Sub
Private Sub sysTrayImage_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Select Case (X / Screen.TwipsPerPixelX)
Case DBLCLICK
Visible = True
SetFocus
Case RCLICK
PopupMenu mnuMerge
End Select
End Sub
Private Sub mnuShow_Click()
Visible = True
SetFocus
End Sub
Private Sub mnuHide_Click()
Visible = False
End Sub
Private Sub mnuExit_Click()
CancelUnload = False
Unload Me
End Sub
Private Sub Timer1_Timer()
If sysTrayImage.Picture.Handle = Picture1.Picture.Handle Then
Set sysTrayImage.Picture = Picture2.Picture
Else
Set sysTrayImage.Picture = Picture1.Picture
End If
SysTrayIcon sysTrayImage, MODIFY_ICON, "Proyecto 1"
End Sub
|