Functions > GUI > GUICtrlCreate >


GUICtrlCreatePic

Crée un contrôle -Picture- pour héberger une image, dans une GUI.

GUICtrlCreatePic ( filename, left, top [, width [, height [, style = -1 [, exStyle = -1]]]] )

Paramètres

filename Nom du fichier image à charger: types pris en charge BMP, JPG, GIF (mais sans animation).
left Coordonnée X du coin supérieur gauche du contrôle. Si vous utilisez -1, X sera calculée en accord avec GUICoordMode.
top Coordonnée Y du coin supérieur gauche du contrôle. Si vous utilisez -1, Y sera calculée en accord avec GUICoordMode.
width [optionnel] Largeur du contrôle (par défaut, la largeur utilisée précédemment).
height [optionnel] Hauteur du contrôle (par défaut, la hauteur utilisée précédemment).
style [optionnel] Définit le style du contrôle. Consultez l'Annexe des styles d'un contrôle GUI.
    Par défaut (-1) : $SS_NOTIFY
    Style forcé : $SS_BITMAP
exStyle [optionnel] Définit le style étendu du contrôle. Consultez la Table des styles étendus.

Valeur de retour

Succès: Retourne l'identifiant (controlID) du nouveau contrôle.
Échec: Retourne 0 si le contrôle ne peut pas être créé.

Remarques

Pour définir ou modifier des informations dans le contrôle, consultez les fonctions GUICtrlUpdate...().

Pour mettre à jour l'image lorsque le contrôle est affichée il suffit d'utiliser GUICtrlSetImage().

Pour définir le contrôle Picture à la même taille que le contenu du fichier, définissez width et height à 0.

Pour avoir une image transparente, créez la GUI avec le style étendu WS_EX_LAYERED. Le pixel supérieur gauche est utilisé en tant que couleur de transparence. Si plusieurs images sont créées la dernière image définit la couleur de transparence. Consultez l'exemple 2.

Pour combiner des styles avec le style par défaut, utilisez BitOR($GUI_SS_DEFAULT_PIC, newstyle, ...).
Pour utiliser les valeurs indiquées ci-dessus, vous devez utiliser #include <StaticConstants.au3> dans votre script.

Le redimensionnement par défaut est $GUI_DOCKSIZE.

Si une image est définie comme image d'arrière-plan, les autres contrôles recouvreront cette image, aussi il est important de désactiver le contrôle Picture: GUICtrlSetState(-1, $GUI_DISABLE).

Le style étendu $GUI_WS_EX_PARENTDRAG peut être utilisé pour permettre le glissement de la fenêtre parent pour les fenêtres qui n'ont pas de barre de titre (pas de style $WS_CAPTION dans GUICreate()).

L'arrière-plan est toujours défini transparent. GUICtrlSetBkColor() n'a pas d'effet sur le contrôle Picture.

En relation

GUICoordMode (Option), GUICtrlSetImage, GUICtrlUpdate..., GUIGetMsg

Exemples

Exemple 1

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Example()

Func Example()
    ; Crée une GUI affichée au centre de l'écran
    GUICreate("My GUI picture", 350, 300, -1, -1, $WS_SIZEBOX + $WS_SYSMENU) 

    GUISetBkColor(0xE0FFFF)
    Local $idPic = GUICtrlCreatePic("..\GUI\mslogo.jpg", 50, 50, 200, 50)

    GUISetState(@SW_SHOW)

    ; Boucle jusqu'à ce que l'utilisateur quitte.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    ; Redimensionne le contrôle
    GUICtrlSetPos($idPic, 50, 50, 200, 100)

    ; Boucle jusqu'à ce que l'utilisateur quitte.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    GUIDelete()
EndFunc   ;==>Example


Exemple 2

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global $g_hGui, $g_aGuiPos, $g_hPic, $g_aPicPos

Example()

Func Example()
    $g_hGui = GUICreate("test transparentpic", 200, 100)
    $g_hPic = GUICreate("", 68, 71, 10, 20, $WS_POPUp, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $g_hGui)
    GUICtrlCreatePic("..\GUI\merlin.gif", 0, 0, 0, 0)

    GUISetState(@SW_SHOW, $g_hPic)
    GUISetState(@SW_SHOW, $g_hGui)

    HotKeySet("{ESC}", "Main")
    HotKeySet("{Left}", "Left")
    HotKeySet("{Right}", "Right")
    HotKeySet("{Down}", "Down")
    HotKeySet("{Up}", "Up")
    $g_aPicPos = WinGetPos($g_hPic)
    $g_aGuiPos = WinGetPos($g_hGui)

    ; Boucle jusqu'à ce que l'utilisateur quitte.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    HotKeySet("{ESC}")
    HotKeySet("{Left}")
    HotKeySet("{Right}")
    HotKeySet("{Down}")
    HotKeySet("{Up}")
EndFunc   ;==>Example

Func Main()
    $g_aGuiPos = WinGetPos($g_hGui)
    WinMove($g_hGui, "", $g_aGuiPos[0] + 10, $g_aGuiPos[1] + 10)
EndFunc   ;==>Main

Func Left()
    $g_aPicPos = WinGetPos($g_hPic)
    WinMove($g_hPic, "", $g_aPicPos[0] - 10, $g_aPicPos[1])
EndFunc   ;==>Left

Func Right()
    $g_aPicPos = WinGetPos($g_hPic)
    WinMove($g_hPic, "", $g_aPicPos[0] + 10, $g_aPicPos[1])
EndFunc   ;==>Right

Func Down()
    $g_aPicPos = WinGetPos($g_hPic)
    WinMove($g_hPic, "", $g_aPicPos[0], $g_aPicPos[1] + 10)
EndFunc   ;==>Down

Func Up()
    $g_aPicPos = WinGetPos($g_hPic)
    WinMove($g_hPic, "", $g_aPicPos[0], $g_aPicPos[1] - 10)
EndFunc   ;==>Up