Erstellt eine Liste (mit ein oder mehreren Spalten) für die GUI (ListView-Control).
GUICtrlCreateListView ( "text", left, top [, width [, height [, style = -1 [, exStyle = -1]]]] )
text | Definition der Spaltenüberschriften. Die Spalten werden durch ein Trennzeichen getrennt, welches mit Opt("GUIDataSeparatorChar") festgelegt werden kann. |
left | Die linke Seite des Controls. Wird -1 verwendet, dann wird left mit Hilfe von GUICoordMode berechnet. |
top | Die Oberkante des Controls. Wird -1 verwendet, dann wird top mit Hilfe von GUICoordMode berechnet. |
width | [optional] Die Breite des Controls (voreingestellt ist die zuvor verwendete Breite). |
height | [optional] Die Höhe des Controls (voreingestellt ist die zuvor verwendete Höhe). |
style | [optional] Legt den Stil des Controls fest. Siehe Anhang GUI-Stile für Controls. Standard (-1) : $LVS_SHOWSELALWAYS, $LVS_SINGLESEL Erzwungener Stil : $LVS_REPORT |
exStyle | [optional] Legt den erweiterten Stil des Controls fest. Siehe Tabelle der erweiterten Stile oder Tabelle der erweiterten ListView Stile. Standard (-1) : $LVS_EX_FULLROWSELECT, $WS_EX_CLIENTEDGE |
Erfolg: | Die Identifikationsnummer (Control-ID) des neuen Controls. |
Fehler: | 0. |
Um dem Control Listeneinträge hinzuzufügen ist GUICtrlCreateListViewItem() zu verwenden.
Das ListView wird immer so aussehen wie die "Detail"-Ansicht des Explorers (LVS_REPORT Stil wird erzwungen).
Die anfängliche Spaltenbreite kann kontrolliert werden, indem Leerzeichen in die Spaltenüberschriften eingefügt werden. Die Spaltenbreite kann durch GUICtrlCreateListViewItem() auf die Breite der Einträge erweitert werden. Bis zu etwa 25 Zeichen passen in eine Spalte. Werden die Einträge durch GUICtrlSetData() verändert, wird keine Größenanpassung vorgenommen.
Um ein ListView mit Icons, kleinen Icons oder in Listenform zu erstellen, ist nach dem Erstellen GUICtrlSetStyle() mit den Stilen $LVS_ICON, $LVS_LIST oder $LVS_SMALLICON zu verwenden.
Das Sortieren der Listeneinträge durch Klick auf die Spaltenüberschriften (wie im Explorer) ist zur Zeit noch nicht implementiert.
Um eine ganze Zeile durch einen Farbbalken auszuwählen ist der erweiterte Stil LVS_EX_FULLROWSELECT zu verwenden.
Um weitere Stile zusätzlich zum Standardstil zu benutzen, ist BitOR($GUI_SS_DEFAULT_LISTVIEW, newstyle, ... ) zu verwenden.
Um die oben angegebenen Werte verwenden zu können, muss #include <ListViewConstants.au3> in das Skript eingefügt werden.
Wird der Stil $LVS_EX_CHECKBOXES zum Listview hinzugefügt, wird die Umrahmung entfernt. Gibt man den Stil $WS_EX_CLIENTEDGE zusätzlich an, wird der Rahmen wieder angezeigt.
Bei exStyle sollten keine $LVS_EX-Stile angegeben werden, da diese teilweise den identischen Wert wie $WS_EX-Stile haben.
z. B.
$WS_EX_ACCEPTFILES = $LVS_EX_HEADERDRAGDROP
$WS_EX_CONTEXTHELP = $LVS_EX_INFOTIP
$WS_EX_DLGMODALFRAME = $LVS_EX_GRIDLINES
$WS_EX_TOPMOST = $LVS_EX_TRACKSELECT
$WS_EX_TRANSPARENT = $LVS_EX_FULLROWSELECT
$WS_EX_WINDOWEDGE = $LVS_EX_FLATSB
Somit ergibt sich:
$WS_EX-Stile mit GUICtrlCreateListView angeben
$LVS_EX-Stile mit _GUICtrlListView_SetExtendedListViewStyle angeben
Das spezielle Flag $GUI_BKCOLOR_LV_ALTERNATE kann zusammen mit dem ListView-Control dazu genutzt werden, den ListviewItems-Zeilen abwechselnd andere Hintergrundfarben zu geben.
Die ungeraden Zeilen bekommen die Farbe, welche durch GUICtrlSetBkColor() des ListView-Controls zugewiesen wird.
Die geraden Zeilen bekommen die Farbe, welche durch GUICtrlSetBkColor() des ListViewItem Controls zugewiesen wird.
Ein ListView-Control muss immer mindestens eine Spalte beinhalten.
- - - - - - - - Erklärung der Controls - - - - - - - -
GUICoordMode (Option), GUICtrlCreateListViewItem, GUICtrlRegisterListViewSort, GUICtrlSetData, GUIDataSeparatorChar (Option), GUIGetMsg
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <WindowsConstants.au3>
Example()
Func Example()
GUICreate("Listview Einträge", 220, 250, 100, 200, -1, $WS_EX_ACCEPTFILES)
GUISetBkColor(0x00E0FFFF) ; Ändert die Hintergrundfarbe
Local $idListview = GUICtrlCreateListView("Spalte1 |Spalte2|Spalte3", 10, 10, 200, 150) ;,$LVS_SORTDESCENDING)
Local $idButton = GUICtrlCreateButton("Wert?", 75, 170, 70, 20)
Local $idItem1 = GUICtrlCreateListViewItem("Eintrag2|Spalte22|Spalte23", $idListview)
Local $idItem2 = GUICtrlCreateListViewItem("Eintrag1|Spalte12|Spalte13", $idListview)
Local $idItem3 = GUICtrlCreateListViewItem("Eintrag3|Spalte32|Spalte33", $idListview)
GUICtrlCreateInput("", 20, 200, 150)
GUICtrlSetState(-1, $GUI_DROPACCEPTED) ; Erlaubt drag&drop
GUISetState(@SW_SHOW)
GUICtrlSetData($idItem2, "EINTRAG1")
GUICtrlSetData($idItem3, "||SPALTE33")
GUICtrlDelete($idItem1)
; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst.
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $idButton
MsgBox($MB_SYSTEMMODAL, "Listview Einträge", GUICtrlRead(GUICtrlRead($idListview)), 2)
Case $idListview
MsgBox($MB_SYSTEMMODAL, "Listview", "angeklickt=" & GUICtrlGetState($idListview), 2)
EndSwitch
WEnd
EndFunc ;==>Example