TrayIcon con Balloon Tip

TrayIcon con Balloon Tip

Postby danielr cyberia® » Wed Jul 02, 2008 5:36 pm

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/subclass/shellnotifyballoontiptimed.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  Expand view  RUN
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  Expand view  RUN
#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
User avatar
danielr cyberia®
 
Posts: 28
Joined: Sat Apr 28, 2007 4:06 am
Location: Venezuela

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 67 guests