Functions > GUI >


GUICreate

Crée une fenêtre graphique (GUI).

GUICreate ( "title" [, width [, height [, left = -1 [, top = -1 [, style = -1 [, exStyle = -1 [, parent = 0]]]]]]] )

Paramètres

title Le titre de la fenêtre.
width [optionnel] La largeur de la fenêtre.
height [optionnel] La hauteur de la fenêtre.
left [optionnel] Coordonnée X du coin supérieur gauche de la fenêtre. Par défaut (-1), la fenêtre est centrée. Si définie, le paramètre 'top' doit également être définie.
top [optionnel] Coordonnée Y du coin supérieur gauche de la fenêtre. Par défaut (-1), la fenêtre est centrée.
style [optionnel] Définit le style de la fenêtre. Consultez Styles des contrôles GUI.
Utilisez -1 pour le style par défaut, qui inclut une combinaison des styles $WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP et $WS_SYSMENU.
Certains styles sont toujours inclus: $WS_CLIPSIBLINGS et $WS_SYSMENU si $WS_MAXIMIZEBOX ou $WS_SIZEBOX sont spécifiés.
exStyle [optionnel] Définit le style étendu de la fenêtre. Consultez la Table des Styles Étendus ci-dessous.
Utilisez -1 pour valeur par défaut, ce qui correspond à aucun style étendu.
Styles forcés: $WS_EX_WINDOWEDGE
parent [optionnel] Le handle d'une fenêtre précédemment créé - La nouvelle fenêtre devient alors un enfant de cette fenêtre.

Valeur de retour

Succès: Retourne le handle de la fenêtre.
Échec: Retourne 0 si la fenêtre ne peut pas être créée et @error = 1.

Remarques

Par défaut la taille de la boîte de dialogue ne peut pas être modifiée ni maximisée. WS_SIZEBOX ou WS_MAXIMIZEBOX peuvent être utilisés dans le paramètre de style.

La définition d'un seul style n'applique que le style définit, donc n'oubliez pas de le combiner avec les styles par défaut. Si par exemple vous ne définissez que WS_SIZEBOX, alors WS_MINIMIZEBOX, WS_CAPTION, WS_POPUP et WS_SYSMENU ne seront pas utilisés. Donc, la meilleure méthode pour définir une fenêtre redimensionnable est d'utiliser WS_OVERLAPPEDWINDOW.

Lorsque vous utilisez $WS_EX_MDICHILD, la position est relative à la zone cliente de la fenêtre parente. Avec $WS_EX_LAYERED il est possible d'avoir une image transparente sur une image de fond définie dans la fenêtre parente.

L'ajout du style $WS_CLIPCHILDREN peut éviter un certain scintillement lors du redimensionnement d'une GUI avec par exemple un contrôle Edit.
Vous pouvez activer le déplacement d'une fenêtre sans $WS_CAPTION en utilisant $WS_EX_CONTROLPARENT dans les paramètres étendus (exStyle).

Pour combiner les styles avec les styles par défaut, utilisez BitOR($GUI_SS_DEFAULT_GUI, newstyle, ...).
La taille spécifiée est la taille de la zone cliente de la fenêtre. La bordure et la barre de titre feront que la fenêtre sera légèrement plus grande que la taille spécifiée. L'utilisation de menu de commandes changera aussi la hauteur des fenêtres.
Table des Styles Étendus

Style étendu Résultat
$WS_EX_ACCEPTFILES Autorise un contrôle Edit ou un contrôle Input dans la fenêtre GUI créée, à recevor des noms de fichiers par glisser-déposer. Le contrôle doit aussi avoir l'état $GUI_DROPACCEPTED attribué par GUICtrlSetState(). Pour d'autres contrôles, l'info glisser-déposer peut être récupérée par @GUI_DRAGID, @GUI_DRAGFILE ou @GUIDROPID.
$WS_EX_APPWINDOW Met la fenêtre au premier plan sur la barre des tâches lorsque la fenêtre est visible.
$WS_EX_CLIENTEDGE Indique que la fenêtre a une bordure avec un bord creux.
$WS_EX_CONTEXTHELP Inclut un point d'interrogation dans la barre de titre de la fenêtre. Ne peut être utilisé avec WS_MAXIMIZEBOX ou WS_MINIMIZEBOX.
$WS_EX_DLGMODALFRAME Crée une fenêtre qui a une double bordure, la fenêtre peut, éventuellement, être créée avec une barre de titre en spécifiant le style WS_CAPTION dans le paramètre de style.
$WS_EX_MDICHILD Crée une fenêtre enfant incluse dans sa fenêtre parente (simulation, pas rééllement un MDI).
$WS_EX_OVERLAPPEDWINDOW Combine les styles WS_EX_CLIENTEDGE et WS_EX_WINDOWEDGE.
$WS_EX_STATICEDGE Crée une fenêtre avec un style de bordure en trois dimensions destiné à être utilisé pour des éléments qui n'acceptent pas les entrées utilisateur.
$WS_EX_TOPMOST Indique que la fenêtre créée avec ce style doit être placée par-dessus toutes les fenêtres qui ne sont pas d'avant-plan et devrait rester par-dessus, même lorsque la fenêtre est désactivée.
$WS_EX_TRANSPARENT La fenêtre apparaît transparente car les bits des fenêtres enfant sous-jacentes de même parent ont déjà été peints.
$WS_EX_TOOLWINDOW Crée une fenêtre outil, qui est une fenêtre destinée à être utilisée comme une barre d'outils flottante. Une fenêtre outil a une barre de titre qui est plus petite que la barre de titre normale, et dont la police du titre est plus petite. Une fenêtre outil n'apparaît pas dans la barre des tâches ou dans la boîte de dialogue qui s'affiche lorsque l'utilisateur appuie sur ALT+TAB. Si une fenêtre outil dispose d'un menu système, son icône n'est pas affichée dans la barre de titre. Cependant, vous pouvez afficher le menu système en tapant ALT+ESPACE.
$WS_EX_WINDOWEDGE Indique que la fenêtre a une bordure en relief.
$WS_EX_LAYERED Crée une fenêtre de superposition (alphablend). Notez que cela ne peut pas être utilisé pour les fenêtres enfants.

Pour utiliser les valeurs spécifiées ci-dessus, vous devez ajouter la ligne : #include <WindowsConstants.au3> dans votre script.
Remarque: Le handle retourné par cette fonction est un véritable handle de fenêtre, ce qui signifie qu'il peut être utilisé de la même manière que le résultat de WinGetHandle().
WinMove() utilisée avant GuiSetState() pour changer la taille d'une fenêtre GUI ne changera pas la position/taille des Controles définis.

En relation

GUICtrlCreate..., GUICtrlSetDefBkColor, GUICtrlSetDefColor, GUIDelete, GUIGetCursorInfo, GUIGetMsg, GUIGetStyle, GUISetParameters..., GUISetState, GUISwitch, WinGetHandle, WinMove

Exemples

Exemple 1

#include <GUIConstantsEx.au3>

Example()

Func Example()
    ; Crée une interface graphique avec un contrôle bouton
    Local $hGUI = GUICreate("Example")
    Local $idOK = GUICtrlCreateButton("OK", 310, 370, 85, 25)

    ; Affiche l'interface graphique.
    GUISetState(@SW_SHOW, $hGUI)

    ; Boucle jusqu'à ce que l'utilisateur quitte.
    Local $idMsg
    Do
        $idMsg = GUIGetMsg()
    Until ($idMsg =  $GUI_EVENT_CLOSE) Or ($idMsg = $idOK)
 
    ; Supprime la GUI précédente et tous les contrôles.
    GUIDelete($hGUI)
EndFunc   ;==>Example


Exemple 2

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

Example()

Func Example()
    Local $sFilePath = "..\GUI\logo4.gif"

    ; Crée une GUI avec différents contrôles.
    Local $hGUI = GUICreate("Example", 400, 100)
    GUICtrlCreatePic("..\Images\msoobe.jpg", 0, 0, 400, 100)

    ; Affiche l'interface graphique.
    GUISetState(@SW_SHOW, $hGUI)

    Local $hChild = GUICreate("", 169, 68, 20, 20, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $hGUI)

    ; Crée un contrôle Picture avec une image transparente.
    GUICtrlCreatePic($sFilePath, 0, 0, 169, 68)

    ; Affiche l'interface graphique enfant.
    GUISetState(@SW_SHOW)

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

    ; Supprime les GUI précédentes et tous les contrôles.
    GUIDelete($hGUI)
    GUIDelete($hChild)
EndFunc   ;==>Example