Page 1 sur 1
[..] Boutton personnalisé en png
Posté : lun. 30 avr. 2012 14:54
par tomasomalley
Bon, cela m'étonne grandement mais après une recherche dans les forums, je n'ai pas trouvé de réponse à cette question toute simple (ou alors j'ai mal cherché ??)
peut-on créer un bouton personnalisé (fichier png) dans une GUI ?
et alors, quitte à abuser peut-on carrément avoir un bouton à deux états genre relaché et pressé, je met en pj deux petits fichiers png (released.png et pressed.png)
Re: [..]Boutton personnalisé en png
Posté : lun. 30 avr. 2012 17:25
par blacksoul305
Ça doit être largement possible en bricolant un truc.
Si jamais le bouton est pressé :
Code : Tout sélectionner
GUICtrlSetState($Pic1,$pressed)
Sleep(250) ; histoire de voir que le bouton est appuyé
GUICtrlSetState($Pic1,$released)
EDIT : J'ai dis du caca, ça ne marche pas avec les .PNG
EDIT2 : Voici un début de code, je ne suis pas du tout ami avec les fonctions _GDI, voici une base pour la suite :
► Afficher le texte
Code : Tout sélectionner
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.8.1
Author: myName
Script Function:
Template AutoIt script.
#ce ----------------------------------------------------------------------------
; Script Start - Add your code below here
#include <GDIPlus.au3>
#include <GuiConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Testing PNG", 235, 176, 194, 129)
;$Pic1 = GUICtrlCreatePic("", 88, 88, 60, 60)
;$Label1 = GUICtrlCreateLabel("State : ", 32, 40, 38, 17)
GUISetState(@SW_SHOW)
; Load PNG image
_GDIPlus_StartUp()
$hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\released.png")
; Draw PNG image
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($Form1)
_GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 88, 88)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_ShutDown()
Exit
Case $hGraphic
MsgBox(64,"lol","it has changed")
EndSwitch
WEnd
EDIT3 : Source de l'exemple :
ici.
Re: [..]Boutton personnalisé en png
Posté : lun. 30 avr. 2012 17:40
par TT22
Si tu veux pas te prendre la tête avec les GDI, tu peux utiliser l'UDF "
Icons.au3"
► Afficher le texte
Code : Tout sélectionner
#include "Icons.au3"
#include <Misc.au3>
Global $Pressed
$Form1 = GUICreate("Testing PNG", 235, 176, 194, 129)
$Pic1 = GUICtrlCreatePic("", 88, 88, 60, 60)
_SetImage($Pic1, @ScriptDir & "\released.png")
GUISetState(@SW_SHOW)
While (GUIGetMsg() <> -3)
If GUIGetMsg() = $Pic1 Then
_SetImage($Pic1, @ScriptDir & "\pressed.png")
While (_IsPressed("01"))
WEnd
Sleep(100)
_SetImage($Pic1, @ScriptDir & "\released.png")
EndIf
WEnd
Re: [..]Boutton personnalisé en png
Posté : lun. 30 avr. 2012 17:42
par blacksoul305
Je prend en note, je connaissais pas cet UDF. Merci !
PS : C'est vrai que vu comment je commençais, ça va pouvait être que difficile par la suite

Re: [..]Boutton personnalisé en png
Posté : lun. 30 avr. 2012 18:06
par silvere
J'ai pas essayer mais l'udf gère la transparence ?
Re: [..]Boutton personnalisé en png
Posté : lun. 30 avr. 2012 20:29
par matwachich
Voici mon
UDF qui fait ce que vous demandez.
PS: n'oubliez pas de convertir les png en ico avec un logiciel (SimplyIcon,
IcoFX)
PS2: Vous n'avez pas bien chercher

Re: [..]Boutton personnalisé en png
Posté : lun. 30 avr. 2012 20:32
par blacksoul305
Matwa qui fait sa petite pub
Beau travail !
Re: [..] Boutton personnalisé en png
Posté : mer. 02 mai 2012 16:58
par tomasomalley
merci à tous, je potasse et je vous remerci comme il se doit....
Re: [..] Boutton personnalisé en png
Posté : mer. 02 mai 2012 17:04
par TT22
Si c'est résolu, passe en [R]

[R] Boutton personnalisé en png
Posté : jeu. 03 mai 2012 08:28
par tomasomalley
merci Matwa c'est nickel...
bon boulot.
à bientôt