Bonjour,
Je voudrais ajouter a mon code du "Ribbon" un ToolTip (le vrai de préférence). mais la je pèche complètement... Si quelqu'un à une piste pour moi je suis preneur.
Cordialement,
GallyHC
[Résolu] RibbonToolTip : je vois pas comment le faire?
[Résolu] RibbonToolTip : je vois pas comment le faire?
Dernière modification par GallyHC le mer. 31/juil./2013 23:57, modifié 1 fois.
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: RibbonToolTip je vois pas comment le faire?
tu peux utiliser ce code ...
la procedure BalloonTip a besoin de connaitre le Gadget sur lequel elle va marcher
puis les parametres suivant :
pour tester laisse le curseur de souris sur l'un des boutons .. il y a 2 toolTip differents
l'un en Bulle fond jaune
l'autre en rectangle , Fond bleuté, multiligne
la procedure BalloonTip a besoin de connaitre le Gadget sur lequel elle va marcher
puis les parametres suivant :
;Syntaxe : BalloonTip(Gadget,TipTitle.s, TipText.s, [TipIcon.i], [TipFontId.i], [TipBackColor.i], [TipFrontColor.i])
;
;Gadget : Gadget concerné
;TipTitle : Titre de l'aide
;TipText : Texte de l'aide
;
;En option :
;TipIcon : Icon à afficher
; #TOOLTIP_WARNING_ICON - #TOOLTIP_ERROR_ICON - #TOOLTIP_INFO_ICON - #TOOLTIP_NO_ICON (Defaut)
;
;TipFontId : Id Police de caractére
;TipBackColor : Couleur d'arriére plan
;TipFrontColor: Couleur de police
;
pour tester laisse le curseur de souris sur l'un des boutons .. il y a 2 toolTip differents
l'un en Bulle fond jaune
l'autre en rectangle , Fond bleuté, multiligne
Code : Tout sélectionner
;BalloonTip
;Syntaxe : BalloonTip(Gadget,TipTitle.s, TipText.s, [TipIcon.i], [TipFontId.i], [TipBackColor.i], [TipFrontColor.i])
;
;Gadget : Gadget concerné
;TipTitle : Titre de l'aide
;TipText : Texte de l'aide
;
;En option :
;TipIcon : Icon à afficher
; #TOOLTIP_WARNING_ICON - #TOOLTIP_ERROR_ICON - #TOOLTIP_INFO_ICON - #TOOLTIP_NO_ICON (Defaut)
;
;TipFontId : Id Police de caractére
;TipBackColor : Couleur d'arriére plan
;TipFrontColor: Couleur de police
;
Procedure BalloonTip(Gadget.l, TipTitle.s, TipText.s, TipIcon=#TOOLTIP_NO_ICON, TipFontId=0, TipBackColor.i=0, TipFrontColor=0)
Protected ToolTip.l, Balloon.TOOLINFO
ToolTip=CreateWindowEx_(0,"ToolTips_Class32","",#WS_POPUP|#TTS_NOPREFIX|#TTS_BALLOON,0,0,0,0,GadgetID(Gadget),0,GetModuleHandle_(0),0)
Balloon\cbSize=SizeOf(TOOLINFO)
Balloon\uFlags=#TTF_IDISHWND | #TTF_SUBCLASS
Balloon\hWnd=GadgetID(Gadget)
Balloon\uId=GadgetID(Gadget)
Balloon\lpszText = @TipText
If TipFontID<>0
SendMessage_(ToolTip, #WM_SETFONT, TipFontID, 0)
EndIf
If Not(TipBackColor=0 And TipFrontColor=0)
SetWindowTheme_(ToolTip, #NUL$, #NUL$)
SendMessage_(ToolTip, #TTM_SETTIPTEXTCOLOR, TipFrontColor,0)
SendMessage_(ToolTip, #TTM_SETTIPBKCOLOR, TipBackColor,0)
EndIf
SendMessage_(ToolTip, #TTM_SETTITLE, TipIcon, @TipTitle)
SendMessage_(ToolTip, #TTM_ADDTOOL, 0, Balloon)
EndProcedure
;/////// TEST //////////////////////////////////////////////////////////
EnableExplicit
Enumeration
#Mainform
#Button1
#Button2
EndEnumeration
Global FontID1.l
OpenWindow(#Mainform, 235, 2, 400, 200, "ToolTip Test", #PB_Window_SystemMenu |#PB_Window_ScreenCentered )
ButtonGadget(#Button1, 300, 10, 80, 22, "Bouton 1")
BalloonTip(#Button1, "Titre de l'aide 1", "Ligne 1", #TOOLTIP_WARNING_ICON, 0, $CCF9FF, #Black)
FontID1 = LoadFont(1, "Arial", 12, #PB_Font_HighQuality)
ButtonGadget(#Button2, 300, 35, 80, 22, "Bouton 2")
BalloonTip(#Button2,"Titre de l'aide 2", "Ligne 1" +#CRLF$+ "Ligne 2" +#CRLF$+ "Ligne 3", #TOOLTIP_WARNING_ICON, FontID1)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
EndSelect
ForEver; EPB
Re: RibbonToolTip je vois pas comment le faire?
Merci.
Par contre petite question : Si je met 2 fois "BalloonTip()" sur le même gadget, est ce que le premier est bien annulé? Car comme je gère moi même les boutons du "Ribbon" il devrais être changer a chaque changement de bouton dans le "Ribbon".
GallyHC
Par contre petite question : Si je met 2 fois "BalloonTip()" sur le même gadget, est ce que le premier est bien annulé? Car comme je gère moi même les boutons du "Ribbon" il devrais être changer a chaque changement de bouton dans le "Ribbon".
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: RibbonToolTip je vois pas comment le faire?
J'ai trouver la solution pour mon problème
.
Donc voila avec ce qui faut pour qu'il puisse être modifier a volonté dans le même Gadget :
En gros j'ai juste ajouter :
Encore merci Dobro
Cordialement,
GallyHC
PS: j'ai remarquer que si l'on ne met pas de "TipTitle", le multi-ligne ne fonctionne plus (Bizarre)?

Donc voila avec ce qui faut pour qu'il puisse être modifier a volonté dans le même Gadget :
Code : Tout sélectionner
Global iHwndTip.i
Procedure CreateBalloonTip(Gadget.l, TipTitle.s, TipText.s, TipIcon = #TOOLTIP_NO_ICON, TipFontId = 0, TipBackColor.i = 0, TipFrontColor = 0)
;
Protected Balloon.TOOLINFO
If iHwndTip <> 0
DestroyWindow_(iHwndTip)
EndIf
iHwndTip = CreateWindowEx_(0,"ToolTips_Class32","",#WS_POPUP | #TTS_NOPREFIX | #TTS_BALLOON, 0, 0, 0, 0, GadgetID(Gadget), 0, GetModuleHandle_(0), 0)
Balloon\cbSize = SizeOf(TOOLINFO)
Balloon\uFlags = #TTF_IDISHWND | #TTF_SUBCLASS
Balloon\hWnd = GadgetID(Gadget)
Balloon\uId = GadgetID(Gadget)
Balloon\lpszText = @TipText
If TipFontID <> 0
SendMessage_(iHwndTip, #WM_SETFONT, TipFontID, 0)
EndIf
If Not(TipBackColor = 0 And TipFrontColor = 0)
SetWindowTheme_(iHwndTip, #NUL$, #NUL$)
SendMessage_(iHwndTip, #TTM_SETTIPTEXTCOLOR, TipFrontColor, 0)
SendMessage_(iHwndTip, #TTM_SETTIPBKCOLOR, TipBackColor, 0)
EndIf
SendMessage_(iHwndTip, #TTM_SETTITLE, TipIcon, @TipTitle)
SendMessage_(iHwndTip, #TTM_ADDTOOL, 0, Balloon)
EndProcedure
Code : Tout sélectionner
If iHwndTip <> 0
DestroyWindow_(iHwndTip)
EndIf
Cordialement,
GallyHC
PS: j'ai remarquer que si l'on ne met pas de "TipTitle", le multi-ligne ne fonctionne plus (Bizarre)?
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: [Résolu] RibbonToolTip : je vois pas comment le faire?
Sous Xp, si on clique sur les boutons alors les tooltips ne fonctionnent plus ou très mal.
En faisant comme ça, ça fonctionne:
En faisant comme ça, ça fonctionne:
Code : Tout sélectionner
;BalloonTip
;Syntaxe : BalloonTip(Gadget,TipTitle.s, TipText.s, [TipIcon.i], [TipFontId.i], [TipBackColor.i], [TipFrontColor.i])
;
;Gadget : Gadget concerné
;TipTitle : Titre de l'aide
;TipText : Texte de l'aide
;
;En option :
;TipIcon : Icon à afficher
; #TOOLTIP_WARNING_ICON - #TOOLTIP_ERROR_ICON - #TOOLTIP_INFO_ICON - #TOOLTIP_NO_ICON (Defaut)
;
;TipFontId : Id Police de caractére
;TipBackColor : Couleur d'arriére plan
;TipFrontColor: Couleur de police
;
Procedure BalloonTip(Gadget.l, TipTitle.s, TipText.s, TipIcon=#TOOLTIP_NO_ICON, TipFontId=0, TipBackColor.i=0, TipFrontColor=0)
Protected ToolTip.l, Balloon.TOOLINFO
ToolTip=CreateWindowEx_(0,"ToolTips_Class32","",#WS_POPUP|#TTS_NOPREFIX|#TTS_BALLOON,0,0,0,0,GadgetID(Gadget),0,GetModuleHandle_(0),0)
If iHwndTip <> 0
DestroyWindow_(iHwndTip)
EndIf
Balloon\cbSize=SizeOf(TOOLINFO)
Balloon\uFlags=#TTF_IDISHWND | #TTF_SUBCLASS
Balloon\hWnd=GadgetID(Gadget)
Balloon\uId=GadgetID(Gadget)
Balloon\lpszText = @TipText
If TipFontID<>0
SendMessage_(ToolTip, #WM_SETFONT, TipFontID, 0)
EndIf
If Not(TipBackColor=0 And TipFrontColor=0)
SetWindowTheme_(ToolTip, #NUL$, #NUL$)
SendMessage_(ToolTip, #TTM_SETTIPTEXTCOLOR, TipFrontColor,0)
SendMessage_(ToolTip, #TTM_SETTIPBKCOLOR, TipBackColor,0)
EndIf
SendMessage_(ToolTip, #TTM_SETTITLE, TipIcon, @TipTitle)
SendMessage_(ToolTip, #TTM_ADDTOOL, 0, Balloon)
EndProcedure
;/////// TEST //////////////////////////////////////////////////////////
;EnableExplicit
Enumeration
#Mainform
#Button1
#Button2
EndEnumeration
Global FontID1.l
OpenWindow(#Mainform, 235, 2, 400, 200, "ToolTip Test", #PB_Window_SystemMenu |#PB_Window_ScreenCentered )
ButtonGadget(#Button1, 300, 10, 80, 22, "Bouton 1")
BalloonTip(#Button1, "Titre de l'aide 1", "Ligne 1", #TOOLTIP_WARNING_ICON, 0, $CCF9FF, #Black)
FontID1 = LoadFont(1, "Arial", 12, #PB_Font_HighQuality)
ButtonGadget(#Button2, 300, 35, 80, 22, "Bouton 2")
BalloonTip(#Button2,"Titre de l'aide 2", "Ligne 1" +#CRLF$+ "Ligne 2" +#CRLF$+ "Ligne 3",#TOOLTIP_INFO_ICON, FontID1)
Repeat
Event = WaitWindowEvent()
Event2 = EventType()
Select Event
Case #PB_Event_CloseWindow
End
EndSelect
Select EventGadget()
Case #Button1
Select Event2
Case #PB_EventType_LeftClick
Debug "Bouton 1 cliqué!"
BalloonTip(#Button1, "Titre de l'aide 1", "Ligne 1", #TOOLTIP_WARNING_ICON, 0, $CCF9FF, #Black)
EndSelect
Case #Button2
Select Event2
Case #PB_EventType_LeftClick
Debug "Bouton 2 cliqué!"
BalloonTip(#Button2,"Titre de l'aide 2", "Ligne 1" +#CRLF$+ "Ligne 2" +#CRLF$+ "Ligne 3",#TOOLTIP_INFO_ICON, FontID1)
EndSelect
EndSelect
ForEver; EPB
Re: [Résolu] RibbonToolTip : je vois pas comment le faire?
Une variante qui utilise la nouvelle fonction de pb520 BindGadgetEvent() et qui simplifie la programmation (pas besoin de s'occuper du clic-droit, etc).
Mesa.
Code : Tout sélectionner
;BalloonTip
;Syntaxe : BalloonTip(Gadget,TipTitle.s, TipText.s, [TipIcon.i], [TipFontId.i], [TipBackColor.i], [TipFrontColor.i])
;
;Gadget : Gadget concerné
;TipTitle : Titre de l'aide
;TipText : Texte de l'aide
;
;En option :
;TipIcon : Icon à afficher
; #TOOLTIP_WARNING_ICON - #TOOLTIP_ERROR_ICON - #TOOLTIP_INFO_ICON - #TOOLTIP_NO_ICON (Defaut)
;
;TipFontId : Id Police de caractére
;TipBackColor : Couleur d'arriére plan
;TipFrontColor: Couleur de police
;
Procedure BalloonTip(Gadget.l, TipTitle.s, TipText.s, TipIcon=#TOOLTIP_NO_ICON, TipFontId=0, TipBackColor.i=0, TipFrontColor=0)
Protected ToolTip.l, Balloon.TOOLINFO
ToolTip=CreateWindowEx_(0,"ToolTips_Class32","",#WS_POPUP|#TTS_NOPREFIX|#TTS_BALLOON,0,0,0,0,GadgetID(Gadget),0,GetModuleHandle_(0),0)
If iHwndTip <> 0
DestroyWindow_(iHwndTip)
EndIf
Balloon\cbSize=SizeOf(TOOLINFO)
Balloon\uFlags=#TTF_IDISHWND | #TTF_SUBCLASS
Balloon\hWnd=GadgetID(Gadget)
Balloon\uId=GadgetID(Gadget)
Balloon\lpszText = @TipText
If TipFontID<>0
SendMessage_(ToolTip, #WM_SETFONT, TipFontID, 0)
EndIf
If Not(TipBackColor=0 And TipFrontColor=0)
SetWindowTheme_(ToolTip, #NUL$, #NUL$)
SendMessage_(ToolTip, #TTM_SETTIPTEXTCOLOR, TipFrontColor,0)
SendMessage_(ToolTip, #TTM_SETTIPBKCOLOR, TipBackColor,0)
EndIf
SendMessage_(ToolTip, #TTM_SETTITLE, TipIcon, @TipTitle)
SendMessage_(ToolTip, #TTM_ADDTOOL, 0, Balloon)
EndProcedure
;/////// TEST //////////////////////////////////////////////////////////
;EnableExplicit
Enumeration
#Mainform
#Button1
#Button2
EndEnumeration
Global FontID1.l
Procedure ToolTipEvent()
BalloonTip(#Button1, "Titre de l'aide 1", "Ligne 1", #TOOLTIP_WARNING_ICON, 0, $CCF9FF, #Black)
BalloonTip(#Button2,"Titre de l'aide 2", "Ligne 1" +#CRLF$+ "Ligne 2" +#CRLF$+ "Ligne 3",#TOOLTIP_INFO_ICON, FontID1)
EndProcedure
OpenWindow(#Mainform, 235, 2, 400, 200, "ToolTip Test", #PB_Window_SystemMenu |#PB_Window_ScreenCentered )
ButtonGadget(#Button1, 300, 10, 80, 22, "Bouton 1")
BalloonTip(#Button1, "Titre de l'aide 1", "Ligne 1", #TOOLTIP_WARNING_ICON, 0, $CCF9FF, #Black)
FontID1 = LoadFont(1, "Arial", 12, #PB_Font_HighQuality)
ButtonGadget(#Button2, 300, 35, 80, 22, "Bouton 2")
BalloonTip(#Button2,"Titre de l'aide 2", "Ligne 1" +#CRLF$+ "Ligne 2" +#CRLF$+ "Ligne 3",#TOOLTIP_INFO_ICON, FontID1)
BindGadgetEvent(#Button1, @ToolTipEvent())
BindGadgetEvent(#Button2, @ToolTipEvent())
Repeat
Event = WaitWindowEvent()
Event2 = EventType()
Select Event
Case #PB_Event_CloseWindow
End
EndSelect
Select EventGadget()
Case #Button1
Select Event2
Case #PB_EventType_LeftClick
Debug "Bouton 1 cliqué!"
EndSelect
Case #Button2
Select Event2
Case #PB_EventType_LeftClick
Debug "Bouton 2 cliqué!"
EndSelect
EndSelect
ForEver