Crée un contrôle d'édition
#include <GuiEdit.au3>
_GUICtrlEdit_Create ( $hWnd, $sText, $iX, $iY [, $iWidth = 150 [, $iHeight = 150 [, $iStyle = 0x003010C4 [, $iExStyle = 0x00000200]]]] )
$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. |
Succès: | Retourne le handle du contrôle d'édition. |
Échec: | Retourne 0. |
Cette fonction est destinée aux utilisateurs avancés et pour apprendre comment fonctionne le contrôle.
#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
#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