UDF > GUI > GuiComboBox >


_GUICtrlComboBox_Create

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]]]] )

Param�tres

$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.

Valeur de retour

Succ�s: Retourne le handle du contr�le ComboBox.
�chec: Retourne 0.

Remarque

Cette fonction est destin�e aux utilisateurs avertis et pour comprendre le fonctionnement du contr�le.

En relation

_GUICtrlComboBox_Destroy

Exemple

#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