Crée un contrôle ComboBox (zone de saisie et liste déroulante d'options)
#include <GuiComboBox.au3>
_GUICtrlComboBox_Create ( $hWnd, $sText, $iX, $iY [, $iWidth = 100 [, $iHeight = 120 [, $iStyle = 0x00200042 [, $iExStyle = 0x00000000]]]] )
$hWnd | Handle du parent ou de la fenêtre propriétaire |
$sText | Chaîne délimitée à ajouter à la combobox |
$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] Style du contrôle: $CBS_AUTOHSCROLL - Fait défiler automatiquement le texte vers la droite dans la zone de saisie quand l'utilisateur tape un caractère à la fin de la ligne. $CBS_DISABLENOSCROLL - Affiche une barre de défilement verticale désactivée $CBS_DROPDOWN - Semblable à $CBS_SIMPLE, sauf que la liste déroulante n'est pas affichée à moins que l'utilisateur sélectionne une icône à côté de la zone de saisie $CBS_DROPDOWNLIST - Semblable à $CBS_DROPDOWN, sauf que la zone de saisie est remplacée par un élément de texte statique qui affiche la sélection actuelle dans la liste des options $CBS_LOWERCASE - Convertit en minuscules tous les textes de la zone de saisie et de la liste déroulante $CBS_NOINTEGRALHEIGHT - Indique que la taille de la zone de la liste déroulante est exactement la taille spécifiée par l'application lors de la création de la ComboBox $CBS_OEMCONVERT - Convertit le texte tapé dans la zone de saisie, du jeu de caractères Windows vers le jeu de caractères OEM et puis de nouveau vers le jeu des caractères Windows $CBS_OWNERDRAWFIXED - Indique que le propriétaire de la liste déroulante est responsable du dessin de son contenu et que les éléments de la liste sont tous de même hauteur $CBS_OWNERDRAWVARIABLE - Indique que le propriétaire de la liste déroulante est responsable du dessin de son contenu et que les éléments de la liste ont des hauteurs variables $CBS_SIMPLE - Affiche la liste déroulante à tout instant $CBS_SORT - Trie automatiquement les chaînes ajoutées à la liste $CBS_UPPERCASE - Convertit en majuscules tous les textes de la zone de saisie et de la liste déroulante Par défaut: $CBS_DROPDOWN, $CBS_AUTOHSCROLL, $WS_VSCROLL Forcé: $WS_CHILD, $WS_TABSTOP, $WS_VISIBLE |
$iExStyle | [optionnel] Styles étendus du contrôle. Ils correspondent aux constantes $WS_EX_*. Voir Tableau des styles étendus. |
Succès: | Retourne le handle du contrôle ComboBox. |
Échec: | Retourne 0. |
Cette fonction est destinée aux utilisateurs avertis et pour comprendre le fonctionnement du contrôle.
#include <GuiComboBox.au3> #include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> #include <WindowsConstants.au3> Global $g_hCombo Example() Func Example() Local $hGUI ; Crée une GUI $hGUI = GUICreate("(UDF) ComboBox Create", 400, 296) $g_hCombo = _GUICtrlComboBox_Create($hGUI, "", 2, 2, 396, 296) GUISetState(@SW_SHOW) ; Ajoute des fichiers _GUICtrlComboBox_BeginUpdate($g_hCombo) _GUICtrlComboBox_AddDir($g_hCombo, "", $DDL_DRIVES, False) _GUICtrlComboBox_EndUpdate($g_hCombo) GUIRegisterMsg($WM_COMMAND, "WM_COMMAND") ; 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 $hWndFrom = $lParam $iIDFrom = BitAND($wParam, 0xFFFF) ; Mot de poids faible $iCode = BitShift($wParam, 16) ; Mot de poids fort Switch $hWndFrom Case $g_hCombo Switch $iCode Case $CBN_CLOSEUP ; Envoyé quand la liste déroulante de la ComboBox a été fermée _DebugPrint("$CBN_CLOSEUP" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Aucune valeur retournée Case $CBN_DBLCLK ; Envoyé quand l'utilisateur double-clique sur une chaîne de la liste déroulante de la ComboBox _DebugPrint("$CBN_DBLCLK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Aucune valeur retournée Case $CBN_DROPDOWN ; Envoyé quand la liste déroulante de la ComboBox est sur le point d'être rendue invisible _DebugPrint("$CBN_DROPDOWN" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Aucune valeur retournée Case $CBN_EDITCHANGE ; Envoyé après que l'utilisateur ait décidé d'une action qui a altéré le texte de la zone de saisie du ComboBox _DebugPrint("$CBN_EDITCHANGE" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Aucune valeur retournée Case $CBN_EDITUPDATE ; Envoyé quand la zone de saisie d'une ComboBox est sur le point d'afficher du texte modifié _DebugPrint("$CBN_EDITUPDATE" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Aucune valeur retournée Case $CBN_ERRSPACE ; Envoyé quand une ComboBox ne peut pas allouer assez de mémoire pour exécuter une requête _DebugPrint("$CBN_ERRSPACE" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Aucune valeur retournée Case $CBN_KILLFOCUS ; Envoyé quand une ComboBox perd le focus clavier _DebugPrint("$CBN_KILLFOCUS" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Aucune valeur retournée Case $CBN_SELCHANGE ; Envoyé quand l'utilisateur change la sélection courante dans la liste déroulante d'une ComboBox _DebugPrint("$CBN_SELCHANGE" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Aucune valeur retournée Case $CBN_SELENDCANCEL ; Envoyé quand l'utilisateur sélectionne un élément de la liste, puis sélectionne un autre contrôle ou ferme la boîte de dialogue _DebugPrint("$CBN_SELENDCANCEL" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Aucune valeur retournée Case $CBN_SELENDOK ; Envoyé quand l'utilisateur sélectionne un élément de la liste, ou sélectionne un élément puis ferme la liste _DebugPrint("$CBN_SELENDOK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Aucune valeur retournée Case $CBN_SETFOCUS ; Envoyé quand une ComboBox reçoit le focus du clavier _DebugPrint("$CBN_SETFOCUS" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Aucune valeur retournée 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