UDF > GUI > GuiEdit >


_GUICtrlEdit_Create

Crée un contrôle d'édition

#include <GuiEdit.au3>
_GUICtrlEdit_Create ( $hWnd, $sText, $iX, $iY [, $iWidth = 150 [, $iHeight = 150 [, $iStyle = 0x003010C4 [, $iExStyle = 0x00000200]]]] )

Paramètres

$hWnd Handle du parent ou de la fenêtre propriétaire
$sText Texte à afficher dans le contrôle
$iX Position horizontale du contrôle
$iY Position verticale du contrôle
$iWidth [optionnel] Largeur du contrôle
$iHeight [optionnel] Hauteur du contrôle
$iStyle [optionnel] Styles du contrôle:
    $ES_AUTOHSCROLL - Fait défiler automatiquement le texte vers la droite de 10 caractères lorsque l'utilisateur tape un caractère à la fin de la ligne.
    $ES_AUTOVSCROLL - Fait défiler automatiquement le texte d'une page lorsque l'utilisateur appuie sur la touche ENTER sur la dernière ligne.
    $ES_CENTER - Centre le texte dans le contrôle d'édition.
    $ES_LEFT - Aligne le texte sur la marge gauche.
    $ES_LOWERCASE - Convertit tous les caractères en minuscules pendant qu'ils sont tapés dans le contrôle d'édition.
    $ES_MULTILINE - Désigne un contrôle d'édition multiligne.
    $ES_NOHIDESEL - Le texte sélectionné est inversé, même si le contrôle n'a pas le focus.
    $ES_NUMBER - Autorise uniquement la saisie de chiffres dans le contrôle d'édition.
    $ES_OEMCONVERT - Convertit le texte saisi dans le contrôle d'édition.
    $ES_READONLY - Empêche l'utilisateur de taper ou de modifier le texte du un contrôle d'édition.
    $ES_RIGHT - Aligne à droite le texte du contrôle d'édition.
    $ES_UPPERCASE - Convertit tous les caractères en majuscules pendant qu'ils sont tapés dans le contrôle d'édition.
    $ES_WANTRETURN - Indique qu'un retour chariot doit être inséré lorsque l'utilisateur appuie sur la touche ENTER.
    $ES_PASSWORD - Affiche un astérisque (*) pour chaque caractère tapé dans le contrôle d'édition

Default: $ES_MULTILINE, $ES_WANTRETURN, $WS_VSCROLL, $WS_HSCROLL, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL
Forced: WS_CHILD, $WS_VISIBLE, $WS_TABSTOP que si vous n'utilisez pas $ES_READONLY
$iExStyle [optionnel] Styles étendus des contrôles. Ils correspondent aux constantes standards $WS_EX_*. Voir Table des Styles Étendus.

Valeur de retour

Succès: Retourne le handle du contrôle d'édition.
Échec: Retourne 0.

Remarque

Cette fonction est destinée aux utilisateurs avancés et pour apprendre comment fonctionne le contrôle.

En relation

_GUICtrlEdit_Destroy

Exemple

Exemple 1

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

Global $g_hEdit

Example()

Func Example()
    Local $hGUI

    ; Crée une GUI
    $hGUI = GUICreate("Edit Create", 400, 300)
    $g_hEdit = _GUICtrlEdit_Create($hGUI, "This is a test" & @CRLF & "Another Line", 2, 2, 394, 268)
    GUISetState(@SW_SHOW)

    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

    _GUICtrlEdit_AppendText($g_hEdit, @CRLF & "Append to the end?")

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

Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg
    Local $hWndFrom, $iIDFrom, $iCode, $hWndEdit
    If Not IsHWnd($g_hEdit) Then $hWndEdit = GUICtrlGetHandle($g_hEdit)
    $hWndFrom = $lParam
    $iIDFrom = _WinAPI_LoWord($wParam)
    $iCode = _WinAPI_HiWord($wParam)
    Switch $hWndFrom
        Case $g_hEdit, $hWndEdit
            Switch $iCode
                Case $EN_ALIGN_LTR_EC ; Envoyé quand l'utilisateur a changé la  direction du contrôle d'édition de gauche vers la droite
                    _DebugPrint("$EN_ALIGN_LTR_EC" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; pas de valeur de retour
                Case $EN_ALIGN_RTL_EC ; Envoyé quand l'utilisateur a changé la  direction du contrôle d'édition de la droite vers la gauche
                    _DebugPrint("$EN_ALIGN_RTL_EC" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; pas de valeur de retour
                Case $EN_CHANGE ; Envoyé quand l'utilisateur a exécuté une action qui peut avoir altéré le texte du contrôle d'édition
                    _DebugPrint("$EN_CHANGE" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; pas de valeur de retour
                Case $EN_ERRSPACE ; Envoyé quand le contrôle d'édition ne peut pas allouer assez de mémoire pour répondre à une requête spécifique
                    _DebugPrint("$EN_ERRSPACE" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; pas de valeur de retour
                Case $EN_HSCROLL ; Envoyé quand l'utilisateur clique sur une barre de défilement horizontale du contrôle d'édition
                    _DebugPrint("$EN_HSCROLL" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; pas de valeur de retour
                Case $EN_KILLFOCUS ; Envoyé quand le contrôle d'édition perd le focus clavier
                    _DebugPrint("$EN_KILLFOCUS" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; pas de valeur de retour
                Case $EN_MAXTEXT ; Envoyé quand l'insertion courante de texte a excédé le nombre spécifié de caractères relatif au contrôle d'édition
                    _DebugPrint("$EN_MAXTEXT" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; Ce message est aussi envoyé quand le contrôle d'édition n'a pas le style $ES_AUTOHSCROLL et que le nombre de caractères qui doit être
                    ; inséré excède la largeur du contrôle d'édition.
                    ; Ce message est aussi envoyé quand le contrôle d'édition n'a pas le style $ES_AUTOVSCROLL et que le nombre total de lignes qui résulte
                    ; de l'insertion de texte excède la hauteur du contrôle d'édition

                    ; pas de valeur de retour
                Case $EN_SETFOCUS ; Envoyé quand un contrôle d'édition reçoit le focus clavier
                    _DebugPrint("$EN_SETFOCUS" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; pas de valeur de retour
                Case $EN_UPDATE ; Envoyé quand un contrôle d'édition est sur le point de se redessiner
                    _DebugPrint("$EN_UPDATE" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; pas de valeur de retour
                Case $EN_VSCROLL ; Envoyé quand l'utilisateur clique sur la barre de défilement verticale du contrôle d'édition ou quand l'utilisateur manipule la roulette de la souris sur le contrôle d'édition
                    _DebugPrint("$EN_VSCROLL" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; pas de valeur de retour
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND

Func _DebugPrint($s_Text, $sLine = @ScriptLineNumber)
    ConsoleWrite( _
            "!===========================================================" & @CRLF & _
            "+======================================================" & @CRLF & _
            "-->Line(" & StringFormat("%04d", $sLine) & "):" & @TAB & $s_Text & @CRLF & _
            "+======================================================" & @CRLF)
EndFunc   ;==>_DebugPrint

Exemple 2

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

Global $g_hEdit

Example()

Func Example()
    Local $hGUI

    ; Crée une GUI
    $hGUI = GUICreate("Edit Create", 400, 300)
    $g_hEdit = _GUICtrlEdit_Create($hGUI, "", 2, 2, 394, 268)
    GUISetState(@SW_SHOW)

    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

    _GUICtrlEdit_SetText($g_hEdit, "This is a test" & @CRLF & "Another Line")

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

Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg
    Local $hWndFrom, $iIDFrom, $iCode, $hWndEdit
    If Not IsHWnd($g_hEdit) Then $hWndEdit = GUICtrlGetHandle($g_hEdit)
    $hWndFrom = $lParam
    $iIDFrom = _WinAPI_LoWord($wParam)
    $iCode = _WinAPI_HiWord($wParam)
    Switch $hWndFrom
        Case $g_hEdit, $hWndEdit
            Switch $iCode
                Case $EN_ALIGN_LTR_EC ; 

                    _DebugPrint("$EN_ALIGN_LTR_EC" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; pas de valeur de retour
                Case $EN_ALIGN_RTL_EC ; Envoyé quand l'utilisateur a changé la direction du contrôle d'édition de la droite vers la gauche
                    _DebugPrint("$EN_ALIGN_RTL_EC" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; pas de valeur de retour
                Case $EN_CHANGE ; Envoyé quand l'utilisateur a exécuté une action qui peut avoir altéré le texte du contrôle d'édition
                    _DebugPrint("$EN_CHANGE" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; pas de valeur de retour
                Case $EN_ERRSPACE ; Envoyé quand un contrôle d'édition ne peut pas allouer assez de mémoire pour répondre à une requête spécifique
                    _DebugPrint("$EN_ERRSPACE" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; pas de valeur de retour
                Case $EN_HSCROLL ; Envoyé quand l'utilisateur clique sur la barre de défilement horizontale d'un contrôle d'édition
                    _DebugPrint("$EN_HSCROLL" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; pas de valeur de retour
                Case $EN_KILLFOCUS ; Envoyé quand un contrôle d'édition perd le focus clavier
                    _DebugPrint("$EN_KILLFOCUS" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; pas de valeur de retour
                Case $EN_MAXTEXT ; Envoyé quand l'insertion courante du texte a excédé le nombre spécifié de caractères pour le contrôle d'édition
                    _DebugPrint("$EN_MAXTEXT" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; Ce message est aussi envoyé quand un contrôle d'édition n'a pas le style $ES_AUTOHSCROLL et que les caractères qui doivent être
                    ; insérés excèdent la largeur du contrôle d'édition.
                    ; Ce message est aussi envoyé quand un contrôle d'édition n'a pas le style $ES_AUTOVSCROLL et que le nombre total de lignes qui résultent
                    ; de l'insertion du texte excède la hauteur du contrôle d'édition

                    ; pas de valeur de retour
                Case $EN_SETFOCUS ; Envoyé quand un contrôle d'édition reçoit le focus clavier
                    _DebugPrint("$EN_SETFOCUS" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; pas de valeur de retour
                Case $EN_UPDATE ; Envoyé quand un contrôle d'édition est sur le point de se redessiner
                    _DebugPrint("$EN_UPDATE" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; pas de valeur de retour
                Case $EN_VSCROLL ; Envoyé quand l'utilisateur clique sur la barre de défilement verticale du contrôle d'édition ou quand l'utilisateur manipule la roulette de la souris sur le contrôle d'édition
                    _DebugPrint("$EN_VSCROLL" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; pas de valeur de retour
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND

Func _DebugPrint($s_Text, $sLine = @ScriptLineNumber)
    ConsoleWrite( _
            "!===========================================================" & @CRLF & _
            "+======================================================" & @CRLF & _
            "-->Line(" & StringFormat("%04d", $sLine) & "):" & @TAB & $s_Text & @CRLF & _
            "+======================================================" & @CRLF)
EndFunc   ;==>_DebugPrint