Problème avec Tooltip!

Sujets variés concernant le développement en PureBasic
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Problème avec Tooltip!

Message par nico »

Ce code ne fonctionne sur XP qu'avec les thèmes et je ne comprends pas pourquoi! :twisted:

Ne me proposez pas de Lib, ce n'est pas là mon Pb!

Code : Tout sélectionner

#TTF_TRANSPARENT=$100 
#TTF_TRACK=$20 
#TTF_ABSOLUTE=$80 

Global hToolTip,ti.TOOLINFO 

Procedure CreateToolTip(hParent) 
     icex.INITCOMMONCONTROLSEX 
     ti.TOOLINFO 
     icex\dwSize = SizeOf(icex) 
     icex\dwICC  = #ICC_WIN95_CLASSES 
     
     InitCommonControlsEx_(@icex) 
     
     sczTipText.s="Texte" 
     sczTipTitle.s="Title" 
     
     hToolTip = CreateWindowEx_(#WS_EX_TOPMOST, "ToolTips_Class32", "",#WS_POPUP| #TTS_NOPREFIX | #TTS_ALWAYSTIP,#CW_USEDEFAULT, #CW_USEDEFAULT,#CW_USEDEFAULT, #CW_USEDEFAULT,#Null,0, GetModuleHandle_(0),#Null) 
     
     ti\cbSize = SizeOf(TOOLINFO) 
     ti\uFlags = #TTF_IDISHWND | #TTF_TRACK | #TTF_ABSOLUTE ;| #TTF_TRANSPARENT 
     ti\hwnd   = hParent 
     ti\uId    = hParent 
     ti\hinst  = GetModuleHandle_(0) 
     ti\lpszText  = @sczTipText 
     
     SendMessage_(hToolTip,#TTM_ADDTOOL,0,@ti) 
     SendMessage_(hToolTip, #TTM_SETMAXTIPWIDTH, 0, 300) 
     
     If sczTipTitle>"" 
          SendMessage_(hToolTip, #TTM_SETTITLE, 1, sczTipTitle) 
     EndIf 
     SendMessage_(hToolTip,#TTM_TRACKACTIVATE,1,@ti) 
EndProcedure 
                                              

If OpenWindow(0, 100, 100, 400, 300,  #PB_Window_SystemMenu | #PB_Window_TitleBar, "BallonTip") 
     
     CreateToolTip(WindowID(0)) 
     
     Repeat 
          EventID.l=WaitWindowEvent() 
          Select EventID 
               Case #WM_MOUSEMOVE 
                    point.POINT\x=EventlParam()& $FFFF 
                    point.POINT\y=EventlParam() >>16 
                    ClientToScreen_(WindowID(0),@point) 
                    SendMessage_(hToolTip, #TTM_TRACKPOSITION, 0,((point\y+14)<<16)+point\x+14) 
          EndSelect 
          
     Until EventID = #PB_EventCloseWindow 
EndIf 
End
Dernière modification par nico le dim. 13/nov./2005 16:11, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

avec ou sans les themes activé ya un bug ligne 22
avec le debugger actif ! (mode F6 sous JAPBE)

Code : Tout sélectionner

 ti\hwnd   = GadgetID(11)
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

J'ai corrigé (merci Dobro), je viens de faire des essais sur win98, ça ne fonctionne pas non plus, ce qui parait logique ; encore faudrait t'il savoir pourquoi! :?
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Ouf ça y est, 3 jours à faire des essais à cause d'une mauvaise déclaration d'une structure de PB. :mad:

Code : Tout sélectionner

Structure TOOLINFO1
     cbSize.l
     uFlags.l
     hwnd.l
     uId.l
     rect.RECT
     hinst.l
     lpszText.l
     lParam.l
EndStructure 
Merci à Denis au passage car il est à l'origine de nombreuse corrections de structures justement dans PB, c'est pour ça que j'ai fini par vérifier; si seulement Denis avait pu aussi voir l'erreur sur cellle-ci. :lol:

Code : Tout sélectionner

Debug SizeOf(TOOLINFO) 48 octets - erreur
Debug SizeOf(TOOLINFO1)  44 octets -bon
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

j'ai testé ton code, mis des débug partout, lu la doc MS pour finalement arriver à rien :oops:

Mais tu as fini par trouver :D

C'est assez pénible ces structures fausses
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Je retombe sur un problème que tu as eu Denis avec les Ballons Tooltips; avec les thèmes activés plus rien et sans les thèmes j'ai le ballon. :?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

avec les thèmes activés plus rien et sans les thèmes j'ai le ballon. Confused
tiens ? c'est l'inverse de tout a l'heure ! :D
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Oui mais cette fois c'est sans rapport avec la structure!

Ce qui m'ennuie le plus, c'est qu'on ne peut pas savoir si le prog utilise les thèmes ou pas; j'ai essayé avec IsThemeActive et AppThemed mais ça ne donne rien.
Répondre