Active la saisie semi-automatique dans la zone d'édition du contrôle ComboBox
#include <GuiComboBox.au3>
_GUICtrlComboBox_AutoComplete ( $hWnd )
$hWnd | ID/handle du contrôle |
#include <GuiComboBox.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Global $g_idCombo Example() Func Example() ; Crée une GUI GUICreate("ComboBox Auto Complete", 400, 296) $g_idCombo = GUICtrlCreateCombo("", 2, 2, 396, 296) GUISetState(@SW_SHOW) ; Ajoute des fichiers _GUICtrlComboBox_BeginUpdate($g_idCombo) _GUICtrlComboBox_AddDir($g_idCombo, @WindowsDir & "\*.exe") _GUICtrlComboBox_EndUpdate($g_idCombo) GUIRegisterMsg($WM_COMMAND, "WM_COMMAND") ; Boucle jusqu'à ce que l'utilisateur quitte. Do Until GUIGetMsg() = $GUI_EVENT_CLOSE GUIDelete() EndFunc ;==>Example Func _Edit_Changed() _GUICtrlComboBox_AutoComplete($g_idCombo) EndFunc ;==>_Edit_Changed Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg Local $hWndFrom, $iIDFrom, $iCode, $hWndCombo If Not IsHWnd($g_idCombo) Then $hWndCombo = GUICtrlGetHandle($g_idCombo) $hWndFrom = $lParam $iIDFrom = BitAND($wParam, 0xFFFF) ; Mot de poids faible $iCode = BitShift($wParam, 16) ; Mot de poids fort Switch $hWndFrom Case $g_idCombo, $hWndCombo Switch $iCode Case $CBN_CLOSEUP ; Envoyé lorsque la liste déroulante d'une ComboBox a été fermée _DebugPrint("$CBN_CLOSEUP" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Aucune valeur de retour Case $CBN_DBLCLK ; Envoyé lorsque l'utilisateur double-clique sur une chaîne dans la liste déroulante d'une ComboBox _DebugPrint("$CBN_DBLCLK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Aucune valeur de retour Case $CBN_DROPDOWN ; Envoyé lorsque la liste déroulante d'une ComboBox est sur le point d'être rendue visible _DebugPrint("$CBN_DROPDOWN" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Aucune valeur de retour Case $CBN_EDITCHANGE ; Envoyé après que l'utilisateur ait pris une mesure susceptible d'avoir modifié le texte de la zone de saisie d'une ComboBox _DebugPrint("$CBN_EDITCHANGE" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) _Edit_Changed() ; Aucune valeur de retour Case $CBN_EDITUPDATE ; Envoyé lorsque la zone de saisie d'une ComboBox est sur le point d'afficher un texte modifié _DebugPrint("$CBN_EDITUPDATE" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Aucune valeur de retour Case $CBN_ERRSPACE ; Envoyé quand une ComboBox ne peut pas allouer suffisamment de mémoire pour répondre à une demande spécifique _DebugPrint("$CBN_ERRSPACE" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Aucune valeur de retour Case $CBN_KILLFOCUS ; Envoyé quand une ComboBox perd le focus du clavier _DebugPrint("$CBN_KILLFOCUS" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Aucune valeur de retour Case $CBN_SELCHANGE ; Envoyé lorsque l'utilisateur modifie 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 de retour Case $CBN_SELENDCANCEL ; Envoyé lorsque l'utilisateur sélectionne un élément, mais 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 de retour Case $CBN_SELENDOK ; Envoyé lorsque 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 de retour 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 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