Crée un contrôle ComboBoxEx
#include <GuiComboBoxEx.au3>
_GUICtrlComboBoxEx_Create ( $hWnd, $sText, $iX, $iY [, $iWidth = 100 [, $iHeight = 200 [, $iStyle = 0x00200002 [, $iExStyle = 0x00000000]]]] )
$hWnd | Handle du parent ou du propriétaire de la fenêtre |
$sText | Texte délimité à 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_DROPDOWN - Similaire à $CBS_SIMPLE, sauf que la liste n'est pas affichée à moins que l'utilisateur sélectionne une icône à côté du champ de saisie $CBS_DROPDOWNLIST - Similaire à $CBS_DROPDOWN, sauf que le contrôle d'édition est remplacé par un élément de texte statique qui affiche la sélection actuelle dans la zone de liste $CBS_SIMPLE - Affiche la liste déroulante tout le temps Default: $CBS_DROPDOWN, $WS_VSCROLL Forced: $WS_CHILD, $WS_TABSTOP, $WS_VISIBLE |
$iExStyle | [optionnel] Style étendu du contrôle: $CBES_EX_CASESENSITIVE - Les recherches dans la liste seront sensibles à la casse $CBES_EX_NOEDITIMAGE - La zone d'édition et la liste déroulante n'affichent pas les éléments images $CBES_EX_NOEDITIMAGEINDENT - La zone d'édition et la liste déroulante n'affichent pas les éléments images $CBES_EX_NOSIZELIMIT - Permet au contrôle ComboBoxEx d'être dimensionné verticalement plus petit que le contrôle de liste déroulante qu'il contient |
Succès: | Retourne le handle du contrôle ComboBoxEx. |
Échec: | Retourne 0. |
#include <GuiComboBoxEx.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Global $g_hCombo Example() Func Example() Local $hGUI ; Crée une GUI $hGUI = GUICreate("ComboBoxEx Create", 400, 300) $g_hCombo = _GUICtrlComboBoxEx_Create($hGUI, "This is a test|Line 2", 2, 2, 394, 268) GUISetState(@SW_SHOW) GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") _GUICtrlComboBoxEx_AddString($g_hCombo, "Some More Text") _GUICtrlComboBoxEx_InsertString($g_hCombo, "Inserted Text", 1) ; Boucle jusqu'à ce que l'utilisateur quitte Do Until GUIGetMsg() = $GUI_EVENT_CLOSE EndFunc ;==>Example Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg, $wParam Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $tInfo $tNMHDR = DllStructCreate($tagNMHDR, $lParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $iIDFrom = DllStructGetData($tNMHDR, "IDFrom") $iCode = DllStructGetData($tNMHDR, "Code") Switch $hWndFrom Case $g_hCombo Switch $iCode Case $CBEN_BEGINEDIT ; Envoyé quand l'utilisateur active la liste déroulante ou clique dans le champ de saisie du contrôle. _DebugPrint("$CBEN_BEGINEDIT" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) Return 0 Case $CBEN_DELETEITEM _DebugPrint("$CBEN_DELETEITEM" & _GetComboBoxEx($lParam)) Return 0 Case $CBEN_DRAGBEGINA, $CBEN_DRAGBEGINW $tInfo = DllStructCreate($tagNMCBEDRAGBEGIN, $lParam) If DllStructGetData($tInfo, "ItemID") Then _DebugPrint("$CBEN_DRAGBEGIN" & _GetComboBoxEx($lParam)) _DebugPrint("$CBEN_DRAGBEGIN" & @CRLF & "--> hWndFrom:" & @TAB & DllStructGetData($tInfo, "hWndFrom") & @CRLF & _ "-->IDFrom:" & @TAB & DllStructGetData($tInfo, "IDFrom") & @CRLF & _ "-->Code:" & @TAB & DllStructGetData($tInfo, "Code") & @CRLF & _ "-->ItemID:" & @TAB & DllStructGetData($tInfo, "ItemID") & @CRLF & _ "-->Text:" & @TAB & DllStructGetData($tInfo, "Text")) ; return est ignoré Case $CBEN_ENDEDITA, $CBEN_ENDEDITW ; Envoyé quand l'utilisateur a terminé une opération dans la zone d'édition ou a sélectionné un élément dans la liste déroulante du contrôle. $tInfo = DllStructCreate($tagNMCBEENDEDIT, $lParam) _DebugPrint("$CBEN_ENDEDIT" & @CRLF & "--> hWndFrom:" & @TAB & DllStructGetData($tInfo, "hWndFrom") & @CRLF & _ "-->IDFrom:" & @TAB & DllStructGetData($tInfo, "IDFrom") & @CRLF & _ "-->Code:" & @TAB & DllStructGetData($tInfo, "Code") & @CRLF & _ "-->fChanged:" & @TAB & DllStructGetData($tInfo, "fChanged") & @CRLF & _ "-->NewSelection:" & @TAB & DllStructGetData($tInfo, "NewSelection") & @CRLF & _ "-->Text:" & @TAB & DllStructGetData($tInfo, "Text") & @CRLF & _ "-->Why:" & @TAB & DllStructGetData($tInfo, "Why")) Return False ; accept the notification and allow the control to display the selected item ; Return True ; otherwise Case $CBEN_GETDISPINFOA, $CBEN_GETDISPINFOW ; Envoyé pour récupérer des informations d'affichage sur un élément callback _DebugPrint("$CBEN_GETDISPINFO" & _GetComboBoxEx($lParam)) Return 0 Case $CBEN_INSERTITEM $tInfo = DllStructCreate($tagNMCOMBOBOXEX, $lParam) Local $tBuffer = DllStructCreate("wchar Text[" & DllStructGetData($tInfo, "TextMax") & "]", DllStructGetData($tInfo, "Text")) _DebugPrint("$CBEN_INSERTITEM" & @CRLF & "--> hWndFrom:" & @TAB & DllStructGetData($tInfo, "hWndFrom") & @CRLF & _ "-->IDFrom:" & @TAB & DllStructGetData($tInfo, "IDFrom") & @CRLF & _ "-->Code:" & @TAB & DllStructGetData($tInfo, "Code") & @CRLF & _ "-->Mask:" & @TAB & DllStructGetData($tInfo, "Mask") & @CRLF & _ "-->Item:" & @TAB & DllStructGetData($tInfo, "Item") & @CRLF & _ "-->Text:" & @TAB & DllStructGetData($tBuffer, "Text") & @CRLF & _ "-->TextMax:" & @TAB & DllStructGetData($tInfo, "TextMax") & @CRLF & _ "-->Indent:" & @TAB & DllStructGetData($tInfo, "Indent") & @CRLF & _ "-->Image:" & @TAB & DllStructGetData($tInfo, "Image") & @CRLF & _ "-->SelectedImage:" & @TAB & DllStructGetData($tInfo, "SelectedImage") & @CRLF & _ "-->OverlayImage:" & @TAB & DllStructGetData($tInfo, "OverlayImage") & @CRLF & _ "-->Param:" & @TAB & DllStructGetData($tInfo, "Param")) Return 0 EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY Func _GetComboBoxEx($lParam) Local $tInfo = DllStructCreate($tagNMCOMBOBOXEX, $lParam) Local $aItem = _GUICtrlComboBoxEx_GetItem($g_hCombo, DllStructGetData($tInfo, "Item")) Return @CRLF & "--> hWndFrom:" & @TAB & DllStructGetData($tInfo, "hWndFrom") & @CRLF & _ "-->IDFrom:" & @TAB & DllStructGetData($tInfo, "IDFrom") & @CRLF & _ "-->Code:" & @TAB & DllStructGetData($tInfo, "Code") & @CRLF & _ "-->Mask:" & @TAB & DllStructGetData($tInfo, "Mask") & @CRLF & _ "-->Item:" & @TAB & DllStructGetData($tInfo, "Item") & @CRLF & _ "-->Text:" & @TAB & $aItem[0] & @CRLF & _ "-->TextMax:" & @TAB & $aItem[1] & @CRLF & _ "-->Indent:" & @TAB & $aItem[2] & @CRLF & _ "-->Image:" & @TAB & $aItem[3] & @CRLF & _ "-->SelectedImage:" & @TAB & $aItem[4] & @CRLF & _ "-->OverlayImage:" & @TAB & $aItem[5] & @CRLF & _ "-->Param:" & @TAB & $aItem[5] EndFunc ;==>_GetComboBoxEx Func _DebugPrint($s_Text, $sLine = @ScriptLineNumber) ConsoleWrite( _ "!===========================================================" & @CRLF & _ "+======================================================" & @CRLF & _ "-->Line(" & StringFormat("%04d", $sLine) & "):" & @TAB & $s_Text & @CRLF & _ "+======================================================" & @CRLF) EndFunc ;==>_DebugPrint