Functions > GUI > GUICtrlCreate >


GUICtrlCreateListView

Crée un contrôle -ListView- pour agencer, de plusieurs façons, des éléments à visualiser.

GUICtrlCreateListView ( "text", left, top [, width [, height [, style = -1 [, exStyle = -1]]]] )

Paramètres

text Définition des entêtes des colonnes. Elles sont séparées avec Opt("GUIDataSeparatorChar").
left Coordonnée X du coin supérieur gauche du contrôle. Si -1 est utilisé alors X sera automatiquement déterminée par GUICoordMode.
top Coordonnée Y du coin supérieur gauche du contrôle. Si -1 est utilisé alors Y sera automatiquement déterminée par GUICoordMode.
width [optionnel] Largeur du contrôle (par défaut, la largeur précédement utilisée).
height [optionnel] Hauteur du contrôle (par défaut, la hauteur précédement utilisée).
style [optionnel] Définit le style du contrôle. Consultez Annexe des styles des contrôles GUI.
    Par défaut (-1) : $LVS_SHOWSELALWAYS, $LVS_SINGLESEL
    Style forcé : $LVS_REPORT
exStyle [optionnel] Définit le style étendu du contrôle. Consultez Table des styles étendus ou Table des styles étendus des ListView.
    Par défaut (-1) : $LVS_EX_FULLROWSELECT, $WS_EX_CLIENTEDGE

Valeur de retour

Succès: Retourne l'identifiant (controlID) du nouveau contrôle.
Échec: Retourne 0.

Remarques

Pour ajouter des éléments à un contrôle ListView utilisez GUICtrlCreateListViewItem()

Le ListView apparaîtra par défaut comme dans la vue des détails de l'Explorer (le style LVS_REPORT est forcé).
Vous pouvez contrôler la taille initiale des colonnes par des blancs de remplissage dans la définition des entêtes de colonnes. La colonne peut être étendue avec GUICtrlCreateListViewItem() selon la taille de l'item. La taille d'une colonne ira jusqu'à environ 25 caractères. Aucun redimensionnement se fera lors d'une mise à jour par GUICtrlSetData().

Pour créer un ListView avec icône, petite icône ou style de liste, utilisez après création:
GUICtrlSetStyle() avec les styles $LVS_ICON, $LVS_LIST or $LVS_SMALLICON.

Le tri d'une liste en cliquant sur le nom de la colonne (comme dans Explorer) n'est pas mis en oeuvre actuellement.

Pour avoir la ligne entière visuellement sélectionnée utilisez le extended style LVS_EX_FULLROWSELECT.

Pour combiner des styles avec le style par défaut utilisez BitOR($GUI_SS_DEFAULT_LISTVIEW, newstyle,...).
Pour utiliser les valeurs spécifiées précédemment utilisez #include <ListViewConstants.au3> dans votre script.

Si vous ajoutez le style $LVS_EX_CHECKBOXES à la ListView, alors les bordures sont enlevées. Ajoutez le style $WS_EX_CLIENTEDGE pour afficher les bordures.


Le commutateur spécial $GUI_BKCOLOR_LV_ALTERNATE peut être utilisée avec le contrôle Listview pour donner un fond alternatif des lignes des ListviewItems.
Les lignes impaires obtiendront le jeu de couleurs par GUICtrlSetBkColor() du contrôle ListView.
Les lignes paires obtiendront le jeu de couleurs par GUICtrlSetBkColor() du contrôle ListViewItem.

En relation

GUICoordMode (Option), GUICtrlCreateListViewItem, GUICtrlRegisterListViewSort, GUICtrlSetData, GUIDataSeparatorChar (Option), GUIGetMsg

Exemple

#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <WindowsConstants.au3>

Example()

Func Example()
    GUICreate("listview items", 220, 250, 100, 200, -1, $WS_EX_ACCEPTFILES)
    GUISetBkColor(0x00E0FFFF)  ; Change la couleur de fond

    Local $idListview = GUICtrlCreateListView("col1  |col2|col3  ", 10, 10, 200, 150) ;, $LVS_SORTDESCENDING)
    Local $idButton = GUICtrlCreateButton("Value?", 75, 170, 70, 20)
    Local $idItem1 = GUICtrlCreateListViewItem("item2|col22|col23", $idListview)
    Local $idItem2 = GUICtrlCreateListViewItem("item1|col12|col13", $idListview)
    Local $idItem3 = GUICtrlCreateListViewItem("item3|col32|col33", $idListview)
    GUICtrlCreateInput("", 20, 200, 150)
    GUICtrlSetState(-1, $GUI_DROPACCEPTED)  ; pour permettre de glisser-déposer
    GUISetState(@SW_SHOW)
    GUICtrlSetData($idItem2, "ITEM1")
    GUICtrlSetData($idItem3, "||COL33")
    GUICtrlDelete($idItem1)

    ; Boucle jusqu'à ce que l'utilisateur quitte.
    Local $idMsg = GUIGetMsg() 
    While $idMsg <> $GUI_EVENT_CLOSE
        Switch $idMsg
            Case $idButton
                MsgBox($MB_SYSTEMMODAL, "listview item", GUICtrlRead(GUICtrlRead($idListview)), 2)

            Case $idListview
                MsgBox($MB_SYSTEMMODAL, "listview", "clicked=" & GUICtrlGetState($idListview), 2)

        EndSwitch
        $idMsg = GUIGetMsg()
    WEnd
EndFunc   ;==>Example