Page 1 sur 1

[EX] GUI avec background en PNG JPEG ou GIF animé.

Posté : sam. 29 mars 2008 20:58
par Doum
Bonjour

Après vous avoir longuement lu et pris en compte vos divers conseils, je me suis lancé dans la création d'un GUI avec une image PNG en arrière plan. Il fonctionne aussi avec une image en jpg ou gif (même animé).
En fichier joint, il y a "fond.gif" à placer dans le même répertoire que le script sinon vous ne verrez pas vos labels ou boutons.

Code : Tout sélectionner

; Version AutoIt_x64 :    3.2.10.0
; Langue     :            Francais
; Plateforme :            Win Vista x64
; Autheur    :            Doum
;
; --------------------------------------------------------------------------------------------
; ---------------------------------------- Section I  ----------------------------------------
; --------------------------------------------------------------------------------------------
; Déclaration
;
#include <GuiConstants.au3>

; --------------------------------------------------------------------------------------------
; --------------------------------------- Section II  ----------------------------------------
; --------------------------------------------------------------------------------------------
; Fenetre du GUI
;
Dim $img
Global $iGuiW = 507, $iGuiH = 516, $sTitle = "Mon Interface"
$hGui = GUICreate($sTitle, $iGuiW, $iGuiH, -1, -1)
SelectImage()
AddImage()
GUISetState()

$imgBg= @ScriptDir & "\fond.gif" ;Fichier indispensable
$controlGui = GUICreate("Input", $iGuiW, $iGuiH, -1, -1, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $hGui)
GUICtrlCreatePic($imgBg, 0, 0, $iGuiW, $iGuiH)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetColor(-1, 0xFFFFFF)
GUISetState()

$LabelColor = 0xFA0C0A
GUICtrlCreateLabel("Votre Nom:", 20, 5)
GUICtrlSetColor(-1, $LabelColor)
GUICtrlSetBkColor (-1, $GUI_BKCOLOR_TRANSPARENT)
$Nom = GUICtrlCreateInput("", 80, 5, 75, 20)
GUICtrlSetLimit(-1, 14)

$button_OK = GUICtrlCreateButton("Ok", 20, 30, 40, 20)
GUICtrlSetColor(-1, $LabelColor)
GUICtrlSetBkColor (-1, 0xFFFFFF);Si on met $GUI_BKCOLOR_TRANSPARENT on a un fond noir

$quitter = GUICtrlCreateButton ("Quitter", 20,60,40,40,$BS_ICON) 
GUICtrlSetImage (-1, "shell32.dll",28)

While 1
    Sleep(10)
    $msg = GUIGetMsg()
    Select    
        Case $msg = $GUI_EVENT_CLOSE
            ExitLoop
        Case $msg = $button_OK
            MsgBox(0, "", GUICtrlRead($Nom) & " Le bouton fonctionne!")
        Case $msg = $quitter
            Exit
    EndSelect
WEnd

; --------------------------------------------------------------------------------------------
; ---------------------------------------- Section III  --------------------------------------
; --------------------------------------------------------------------------------------------
; Choix de l'image PNG/JPG/BMP/GIF(Même animée)
;
Func SelectImage()
HotKeySet("{TAB}", "Quitter") ;quand je met {ESC} ou {ESCAPE} il ne quitte pas mais la c'est bon
$message = "Sélectionner l'image qui sera en arrière plan."
Global $img = FileOpenDialog($message, @ScriptDir, "Images (*.png;*.jpg;*.gif;*.bmp)", 1 + 2 )
If @error Then
    MsgBox(4096,"","Vous n'avez rien sélectionné.")
    SelectImage()
Else
    $img = StringReplace($img, "|", @CRLF)
    MsgBox(4096,"","Vous avez sélectionné " & $img)
EndIf
EndFunc

; --------------------------------------------------------------------------------------------
; ---------------------------------------- Section IV  ---------------------------------------
; --------------------------------------------------------------------------------------------
; Fonction Ajout de l'image PNG
;
FUNC AddImage()
    LOCAL $x = ObjCreate("Shell.Explorer")
    IF IsObj($x) THEN
       GUICtrlCreateObj($x,0,0,$iGuiW,$iGuiH)
       $x.navigate("about" & chr(58) & "blank")
       WHILE $x.Busy()
          Sleep(20)
       WEND
       $x.document.body.background = $img
       $x.document.body.scroll = "no"
       $x.document.body.style.border = "0px"
    ENDIF
ENDFUNC; Ajout de l'image

; --------------------------------------------------------------------------------------------
; ---------------------------------------- Section V  ----------------------------------------
; --------------------------------------------------------------------------------------------
; Fonction Quitter
;
Func Quitter()
    Exit 0
EndFunc
 
Merci et à bientôt. :lol:

Re: [EX] GUI avec background en PNG JPEG ou GIF animé.

Posté : sam. 29 mars 2008 21:51
par tolf
Chez moi ça ne marche pas : en fond j'ai un truc du genre :

"Navigation vers la page Web annulée
Essayez la chose suivante :
    Actualisez la page"

Re: [EX] GUI avec background en PNG JPEG ou GIF animé.

Posté : sam. 29 mars 2008 22:47
par Doum
Salut,

Dans la section IV, la ligne
$x.navigate("about&#058;blank")
doit être remplacé par
$x.navigate("about:blank")
L'erreur est apparut à l'édition du post et je n'arrive pas à l'éditer, c'est à cause des balises.
Faite la modification et dites moi si c'est bon.
J'ai changé dans le code et remplacé le caractère " : " par " chr(58) ".

A plus.

Re: [EX] GUI avec background en PNG JPEG ou GIF animé.

Posté : sam. 29 mars 2008 23:25
par Tlem
Le code fonctionne parfaitement.

Pour ne pas avoir de message d'erreur dans Scite4AutoIt, il faut rajouter dans les déclarations :

Code : Tout sélectionner

Dim $img

Re: [EX] GUI avec background en PNG JPEG ou GIF animé.

Posté : dim. 30 mars 2008 14:03
par tolf
Tlem a écrit :Le code fonctionne parfaitement
Non, toujours pas chez moi ! J'ai changé la ligne :

Code : Tout sélectionner

$x.navigate("about&#058;blank")
par la ligne :

Code : Tout sélectionner

$x.navigate("about" & chr(58) & "blank")
mais cette fois-ci, j'ai un fond blanc :roll:

Re: [EX] GUI avec background en PNG JPEG ou GIF animé.

Posté : dim. 30 mars 2008 14:04
par tolf
Sinon, j'ai une petite question sur le script : qu'est-ce-que le logiciel "Shell.Explorer" ?

Re: [EX] GUI avec background en PNG JPEG ou GIF animé.

Posté : dim. 30 mars 2008 14:09
par ani
ce n'est pas un logiciel, enfin oui et non, le shell.explorer c'est l'objet de l'explorateur windows (qui soit explorer ou iexplore), pour de plus amples information a ce sujet voir microsoft ;)

Re: [EX] GUI avec background en PNG JPEG ou GIF animé.

Posté : dim. 30 mars 2008 15:11
par Doum
Salut,

Tolf, avez-vous enregistrer votre script et mis le fichier fond.gif dans le même répertoire?
Ce fichier ne doit pas être modifié ou renommé.
Si vous voulez le placer ailleurs c'est à la ligne (25) : $imgBg= @ScriptDir & "\fond.gif"
Vous mettez un chemin relatif si vous voulez.
Avez-vous utilisé mon fichier png et gif d'exemple pour vos tests?
Quel est votre version d'Autoit, Windows et Iexplorer?
Avez-vous des messages d'erreur dans Scite4Autoit?

Re: [EX] GUI avec background en PNG JPEG ou GIF animé.

Posté : dim. 30 mars 2008 19:33
par tolf
J'ai bien mis le fichier dans le même répertoire.
AutoIt : dernière version
Windows : XP
IE : 7
Pas de message d'erreur dans SciTE

Re: [EX] GUI avec background en PNG JPEG ou GIF animé.

Posté : dim. 30 mars 2008 21:47
par Tlem
Tout pareil pour moi, mais le script fonctionne sur ma machine.