Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
Opt("GUIOnEventMode", 1)
Opt("MouseCoordMode", 2)
Global $aLine, $ConfigFile, $MainGUI, $ListView, $BufferGUIName
_Ini()
_MainGUI()
While GUIGetMsg() <> -3
WEnd
Func _Ini()
$ConfigFile = @ScriptDir & "\Ini\Config.ini"
EndFunc
Func _MainGUI()
$MainGUI = GUICreate("Selection", 266, 390, 192, 124)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
$ListView = GUICtrlCreateListView("Choix de la ligne", 8, 8, 249, 297, BitOR($LVS_REPORT, $LVS_SHOWSELALWAYS))
$aLine = IniReadSection($ConfigFile, "LINES")
If @error Then
MsgBox(4096, "", "", -1, $MainGUI)
Else
_GUICtrlListView_DeleteAllItems($ListView)
For $i = 1 To $aLine[0][0]
$aListView = $aLine[$i][0]
GUICtrlCreateListViewItem($aLine[$i][0], $ListView)
Next
EndIf
My_GUICtrlListView_AutoSizeColumns($ListView)
$B_Ok = GUICtrlCreateButton("OK", 8, 320, 249, 25)
GUICtrlSetOnEvent(-1, "_BuildScreen")
$Checkbox = GUICtrlCreateCheckbox("Checkbox", 8, 360, 249, 17);, $BS_CHECKBOX)
GUISetState(@SW_SHOW)
EndFunc
Func _BuildScreen()
$Count = ControlListView($MainGUI, "", $ListView, "GetItemCount")
For $i = 0 To $Count - 1
If ControlListView($MainGUI, "", $ListView, "IsSelected", $i) Then
$BufferGUIName = ControlListView($MainGUI, "", $ListView, "GetText", $i)
_GUICreate($BufferGUIName)
EndIf
Next
EndFunc
Func _GUICreate($BufferGUIName)
ConsoleWrite("Affichage GUI nommé: " & $BufferGUIName & @CRLF)
EndFunc
Func _Exit()
Exit
EndFunc
Func My_GUICtrlListView_AutoSizeColumns($LV, $iMini = 100)
If Not IsHWnd($LV) Then $LV = GUICtrlGetHandle($LV)
Local $hHeader = _GUICtrlListView_GetHeader($LV), $iHeader_Width, $iData_Width
_GUICtrlListView_BeginUpdate($LV)
For $iIndex = 0 To _GUICtrlListView_GetColumnCount($LV) - 1
If _GUICtrlListView_GetColumnWidth($LV, $iIndex) = 0 Then ContinueLoop
_GUICtrlListView_SetColumnWidth($LV, $iIndex, $LVSCW_AUTOSIZE_USEHEADER)
$iHeader_Width = _GUICtrlListView_GetColumnWidth($LV, $iIndex)
If @OSVersion = "WIN_XP" And $iIndex < _GUICtrlListView_GetColumnCount($LV) - 1 Then
If _GUICtrlHeader_GetItemFlags($hHeader, $iIndex) / 2 > 1 Then $iHeader_Width += 30
EndIf
_GUICtrlListView_SetColumnWidth($LV, $iIndex, $LVSCW_AUTOSIZE)
$iData_Width = _GUICtrlListView_GetColumnWidth($LV, $iIndex)
If $iHeader_Width > $iData_Width Then
_GUICtrlListView_SetColumnWidth($LV, $iIndex, $iHeader_Width)
EndIf
If _GUICtrlListView_GetColumnWidth($LV, $iIndex) < $iMini Then
_GUICtrlListView_SetColumnWidth($LV, $iIndex, $iMini)
EndIf
Next
_GUICtrlListView_EndUpdate($LV)
EndFunc ;==>My_GUICtrlListView_AutoSizeColumns