TrayIcon con Balloon Tip

Post Reply
User avatar
danielr cyberia®
Posts: 28
Joined: Sat Apr 28, 2007 4:06 am
Location: Venezuela

TrayIcon con Balloon Tip

Post by danielr cyberia® »

Saludos Cordiales Colegas!!!!


Tengo un conflicto usando la clase TTray ya que quiero poder enviarle un aviso de notificacion tipo Balloon Tip pero no he podido hacer que funcione.


En este link (como en muchos otros de la misma forma) explica como poder enviar los parametros para hacer el Balloon Tip, por supueso en VB pero la logica es universal.!


http://vbnet.mvps.org/index.html?code/s ... ptimed.htm


Lo que me da a entender que como lo he leido en este foro y en otros. no hay la necesidad de una libreria de terceros ya que el shell32 desde win2k para aca tiene estos metodos.

En el link muestra como hace el codigo de la siguiente manera

Code: Select all

Public Sub ShellTrayBalloonTipShow(hwnd As Long, _
                                   nIconIndex As Long, _
                                   sTitle As String, _
                                   sMessage As String)

   Dim nid As NOTIFYICONDATA
   
   If NOTIFYICONDATA_SIZE = 0 Then SetShellVersion
   
   With nid
      .cbSize = NOTIFYICONDATA_SIZE
      .hwnd = hwnd
      .uID = APP_SYSTRAY_ID
      .uFlags = NIF_INFO
      .dwInfoFlags = nIconIndex
      .szInfoTitle = sTitle & vbNullChar
      .szInfo = sMessage & vbNullChar
   End With

   Call Shell_NotifyIcon(NIM_MODIFY, nid)

End Sub
y yo lo hice de la siguiente manera

Code: Select all

#INCLUDE "FIVEWIN.CH"
#INCLUDE "STRUCT.CH"

FUNCTION TRAYEDIT(cStr1,cStr2)
LOCAL oId,c

IF VALTYPE(oTray)="O"

STRUCT oId      
MEMBER cbSize     AS LONG      
MEMBER hWnd       AS LONG      
MEMBER uID        AS LONG      
MEMBER uFlags     AS LONG      
MEMBER dwInfoFlags   AS LONG       
MEMBER szInfoTitle AS STRING LEN 64   
MEMBER szInfo      AS STRING LEN 512
ENDSTRUCT

	  
      oId:cbSize:= LEN(oId:cBuffer)
      oId:hwnd:= oTray:oWnd:hWnd 
      oId:uID:=1 
      oId:uFlags:= 16
      oId:dwInfoFlags:= 1
      oId:szInfoTitle:= cStr1
      oId:szInfo:=cStr2

//? oId:cBuffer

c:=oId:cBuffer

Shell_NotifyIcon(1,@c)
ENDIF

RETURN .T.
Los valores de uFlags y dwInfoFlags los pase de hex a dec y el uId es igual a el valor que tiene la clase TTray por defecto q es 1

Y bueno.... no hace nada. jeje.

y por supuesto !!! corriendo esto cuando mi Tray ya existe, de hecho eso si se valida porq el alert (?) si se muestra.

Si alguien puede darme una sugerencia. Gracias.!!!!
Best Regards- Saludos y Exitos

Daniel Rivas
Post Reply