Page 1 sur 1
[..] Texte et icone sur bouton GUICtrlCreateCheckbox
Posté : mar. 09 mars 2010 21:12
par pierrotm777
Bonjour,
Voici mon petit problème.
Je voudrais créer un bouton checkable avec une icon et du texte sur celui-ci.
J'ai donc trouvé cette solution mais le texte n'est pas toujours visible.
► Afficher le texte
Code : Tout sélectionner
$on1 = GUICtrlCreateCheckbox("",810,10,40,40, BitOR($BS_PUSHLIKE,$BS_ICON))
GUICtrlSetImage(-1,"image.ico",40)
$labelon1=GUICtrlCreateLabel("OFF", 810,10,40,40, 0x201, 0x200)
GUICtrlSetFont(-1, 6, 800, 0, "MS Sans Serif")
Connaissez vous une solution ?
Merci
Re: [..] Texte et icone sur bouton GUICtrlCreateCheckbox
Posté : mer. 10 mars 2010 01:32
par Tlem
Rajoutez le texte sur l'image.

Re: [..] Texte et icone sur bouton GUICtrlCreateCheckbox
Posté : mer. 10 mars 2010 13:12
par pierrotm777
Cela aurait été une bonne idée, mais le texte change en fonction du bouton.
Au départ , il est égal à "OFF" et aprés le premier appuie, "ON", et etc ...
Re: [..] Texte et icone sur bouton GUICtrlCreateCheckbox
Posté : mer. 10 mars 2010 15:42
par Tlem
Hé bien oui, comme sur ce forum.
Il vous faut une image par bouton, voir même quatre si vous voulez gérer le survol.

Re: [..] Texte et icone sur bouton GUICtrlCreateCheckbox
Posté : jeu. 11 mars 2010 07:47
par pierrotm777
pourriez vous me guider un peu plus svp ?
Re: [..] Texte et icone sur bouton GUICtrlCreateCheckbox
Posté : jeu. 11 mars 2010 18:46
par Tlem
Hé bien, tout simplement, vous prenez l'image que vous voulez attribuer au bouton, puis à l'aide d'un outil de dessin écrivez le texte désiré, puis enregistrez l'image sous un nom en rapport avec le texte. Ensuite recommencez la même manipulation pour les autres texte ...
Ensuite dans votre code, lorsque le bouton doit changer de texte, modifiez l'image associée avec la commande
GUICtrlSetImage().
Il existe un UDF du nom de
MouseHover.au3 qui permet de modifier l'apparence d'un contrôle lors de son survol. Peut être devriez-vous y jeter un coup d'œil si vous voulez en faire un peut plus.

Re: [..] Texte et icone sur bouton GUICtrlCreateCheckbox
Posté : ven. 12 mars 2010 07:20
par pierrotm777
J'avais pensé à ces lignes là mais ça ne marche pas !
► Afficher le texte
Code : Tout sélectionner
$Main = GUICreate("GUI", 850, 600, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX))
;creation de 4 boutons checkables
$on1 = GUICtrlCreateCheckbox("",810,10,40,40, BitOR($BS_PUSHLIKE,$BS_ICON))
GUICtrlSetImage(-1,"webcamOFF.ico",40)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then
Exit
EndIf
If $msg = $on1 Then
Switch GUICtrlRead($on1)
Case $GUI_CHECKED
GUICtrlSetImage(-1,"webcamON.ico",10)
Case $GUI_UNCHECKED
GUICtrlSetImage(-1,"webcamOFF.ico",10)
EndSwitch
_SetState()
EndIf
WEnd
Re: [..] Texte et icone sur bouton GUICtrlCreateCheckbox
Posté : ven. 12 mars 2010 07:28
par pierrotm777
Je pense avoir mal utilisé GuiCtrlsetimage():
► Afficher le texte
Code : Tout sélectionner
$Main = GUICreate("GUI", 850, 600, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX))
;creation de 4 boutons checkables
$on1 = GUICtrlCreateCheckbox("",810,10,40,40, BitOR($BS_PUSHLIKE,$BS_ICON))
GUICtrlSetImage(-1,"webcamOFF.ico",40)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then
Exit
EndIf
If $msg = $on1 Then
Switch GUICtrlRead($on1)
Case $GUI_CHECKED
GUICtrlSetImage($on1,"webcamON.ico")
Case $GUI_UNCHECKED
GUICtrlSetImage($on1,"webcamOFF.ico")
EndSwitch
_SetState()
EndIf
WEnd
Cela semble fonctionner . Est ce la bonne solution? Seul problème , les textes ne sont pas bien lissé car dépendant de la résolution de l'image!
Re: [..] Texte et icone sur bouton GUICtrlCreateCheckbox
Posté : ven. 12 mars 2010 07:35
par pierrotm777
Par ailleurs j'avais utilisé cet UDF (funkey) pour un autre projet mais je n'arrive pas à faire un bouton ON OFF avec !
► Afficher le texte
Code : Tout sélectionner
$Main = GUICreate("GUI", 850, 600, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX))
;creation de 4 boutons checkables
$on1 = _GUICtrlCreateBitBtn("OFF", 810,10,40,40, "webcam.ico", 20, 35, 0, 3, 10, BitOR($BS_PUSHLIKE,$BS_ICON));ON/OFF caméra 1
GUICtrlSetImage(-1,"webcamOFF.ico",40)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then
Exit
EndIf
If $msg = $on1 Then
Switch GUICtrlRead($on1)
Case $GUI_CHECKED
GUICtrlSetImage($on1,"webcamON.ico")
Case $GUI_UNCHECKED
GUICtrlSetImage($on1,"webcamOFF.ico")
EndSwitch
_SetState()
EndIf
WEnd
Si vous aviez une idée svp merci
Re: [..] Texte et icone sur bouton GUICtrlCreateCheckbox
Posté : ven. 12 mars 2010 07:59
par Tlem
On ne lit pas l'état d'une CheckBox comme vous le faire.
Lisez la documentation de la commande GUICtrlRead() (section Remark') ou utilisez l'UDF IsChecked() (a chercher sur le forum).
Re: [..] Texte et icone sur bouton GUICtrlCreateCheckbox
Posté : ven. 12 mars 2010 12:54
par pierrotm777
Mon but final aurait été d'utiliser l'UDF funkey,
http://www.autoitscript.fr/forum/viewto ... f=6&t=4304 mais avec une possibilité ON OFF .
Il y a la fontion suivante:
► Afficher le texte
Code : Tout sélectionner
Func _BitBtnClick($IdBtn)
;funkey 16.12.2009
Local $aInfo, $aInfoLast
GUICtrlSetState($IdBtn + 3, 32) ;$GUI_HIDE
GUICtrlSetState($IdBtn + 2, 16) ;$GUI_SHOW
$aInfoLast = GUIGetCursorInfo()
Do
Sleep(10)
$aInfo = GUIGetCursorInfo()
If @error Then Return 0
If $aInfo[4] <> $aInfoLast[4] Then ;if changing the hover-control
If $aInfo[4] < $IdBtn Or $aInfo[4] > $IdBtn + 3 Then ;if not hovering the BitBtn
GUICtrlSetState($IdBtn + 2, 32) ;$GUI_HIDE
GUICtrlSetState($IdBtn + 3, 16) ;$GUI_SHOW
Else
GUICtrlSetState($IdBtn + 3, 32) ;$GUI_HIDE
GUICtrlSetState($IdBtn + 2, 16) ;$GUI_SHOW
EndIf
EndIf
$aInfoLast = $aInfo
Until Not $aInfo[2]
GUICtrlSetState($IdBtn + 2, 32) ;$GUI_HIDE
GUICtrlSetState($IdBtn + 3, 16) ;$GUI_SHOW
If $aInfo[4] <> $IdBtn + 2 And $aInfo[4] <> $IdBtn + 1 Then Return 0
Return 1
EndFunc ;==>_BitBtnClick
mais je ne vois pas comment l'utiliser et si elle correspond à mon besion
Re: [..] Texte et icone sur bouton GUICtrlCreateCheckbox
Posté : ven. 12 mars 2010 16:27
par Tlem
Oui. Et
ma réponse ne vous convient pas ?
C'est pourtant simple, la fonction
_BitBtnClick($IdBtn) vérifie si le contrôle
$IdBtn est cliqué ou non.
Vous n'avez qu'à rajouter cette fonction de contrôle dans la boucle principale
$msg ou l'attribuer en mode événementiel afin de traiter le type de retour (0 ou 1).
Re: [..] Texte et icone sur bouton GUICtrlCreateCheckbox
Posté : ven. 12 mars 2010 20:03
par pierrotm777
Test ON /OFF avec fonction _BitBtnClick
► Afficher le texte
Code : Tout sélectionner
$Main = GUICreate("RRMulti", 870, 600, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX))
$on1 = _GUICtrlCreateBitBtn("OFF", 810,10,40,40, "webcam.ico", 20, 35, 0, 3, 10);ON/OFF caméra 1
[color=#FF0000]$bt1 = _BitBtnClick($on1)[/color]
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then
Exit
EndIf
If $msg = $on1 Then
$dt0 = Number(Not($dt0))
If $bt1 = 0 Then
GUICtrlSetData($on1, "ON")
SplashTextOn("Warning!",$bt1)
sleep(1000)
SplashOff()
EndIf
If $bt1 = 1 Then
GUICtrlSetData($on1, "OFF")
SplashTextOn("Warning!",$bt1)
sleep(1000)
SplashOff()
EndIf
EndIf
Wend
J'ai essayer ces lignes mais $bt1 reste tjs à 0
Re: [..] Texte et icone sur bouton GUICtrlCreateCheckbox
Posté : ven. 12 mars 2010 21:19
par Tlem
Re: [..] Texte et icone sur bouton GUICtrlCreateCheckbox
Posté : sam. 13 mars 2010 09:40
par pierrotm777
Vous avez l'air triste ! Moi aussi car je n'ai tjs pas trouvé ma solution !
Au fait, je ne sais pas comment faire pour recevoir un avis de réponse du forum sur mon mail.
Il semblerait que cela ne fonctionne pas pour moi !
Re: [..] Texte et icone sur bouton GUICtrlCreateCheckbox
Posté : sam. 13 mars 2010 16:23
par Tlem
pierrotm777 a écrit :Vous avez l'air triste !
Oui, un peut quand même, car vous placez du code sans réfléchir...
pierrotm777 a écrit :je ne sais pas comment faire pour recevoir un avis de réponse du forum sur mon mail
C'est corrigé.
Re: [..] Texte et icone sur bouton GUICtrlCreateCheckbox
Posté : sam. 13 mars 2010 18:16
par pierrotm777
Croyez moi , mon cerveau bouillonne. Il m'arrive de mettre du temps à trouver une solution ou une idée , mais là , je bloque .
GUICtrlCreateCheckbox marche trés bien mais une solution avec _GUICtrlCreateBitBtn et _BitBtnClick me plairait bien
Re: [..] Texte et icone sur bouton GUICtrlCreateCheckbox
Posté : sam. 13 mars 2010 18:24
par Tlem
Hé bien, demandez vous à quoi sert la fonction
_BitBtnClick() et ou il faut l'utiliser pour bénéficier de son résultat ...
Si je ne vous donne pas la réponse, c'est tout simplement parce que je pense que vous êtes capable de la trouver par vous même.
J'ai répondu à de nombreuses demandes de votre part en vous donnant la solution toute faite (ou presque parfois). Vos scripts deviennent de plus en plus long et vous vous perdez dans la complexité, alors travaillez par étape et résolvez vos problèmes au fur et à mesure en essayant de comprendre l'utilité de chaque fonctions utilisée, car si vous ne comprenez pas à quoi cela sert, comment voulez-vous placer le code de telle ou telle fonction au bon endroit ou avec la bonne syntaxe ...