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
