Je cherche à classer par arborescences, mais jusqu'ici sans succès, ce qui donnerai 2 arborescences, SONY et Xiaomi.
On va peut-être croire que je le fait exprès mais c'est pas le cas
 
 Merci d'avance à tous
 
 Code : Tout sélectionner
SONY
    + Smartphone
                + Z2
                + Z5
                + XZ Premium
                            + François Pignon
                            + Dupont Durand
                                             + General
                                             + HDR
                                             + ...
Xiaomi
    + Drone
                + FIMI X8 SE
                + FIMI A3
                            + François Pignon
                            + Dupont Durand
                                             + General
                                             + HDR
                                             + ...
Code : Tout sélectionner
; https://www.autoitscript.com/forum/topic/137148-_guictrltreeview_getselection-help/?do=findComment&comment=959711
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiTreeView.au3>
; Set flag
$fFlag = False
; Create GUI
$hGUI = GUICreate("Test", 500, 500)
$hTreeView = _GUICtrlTreeView_Create($hGUI, 10, 10, 480, 480, -1, $WS_EX_CLIENTEDGE+$WS_EX_DLGMODALFRAME+$WS_EX_CLIENTEDGE)	; $WS_EX_CLIENTEDGE, $WS_EX_DLGMODALFRAME), $WS_EX_CLIENTEDGE)
; ===> Read from list of files "Xiaomi,Drone,FIMI X8 SE,François Pignon,General.ini" etc..
_TreeView( $hTreeView, 'Xiaomi,Drone,FIMI X8 SE,François Pignon,General,HDR.ini')
_TreeView( $hTreeView, 'Xiaomi,Drone,FIMI X8 SE,Dupont Durand,General,HDR.ini')
_TreeView( $hTreeView, 'Xiaomi,Drone,FIMI A3,François Pignon,General,HDR.ini')
_TreeView( $hTreeView, 'Xiaomi,Drone,FIMI X8 SE,François Pignon,Vivid.ini')
_TreeView( $hTreeView, 'SONY,SmartPhone,Z2,Dupont Durand,4K.ini')					; <=== SmartPhone
_TreeView( $hTreeView, 'Xiaomi,Drone,FIMI X8 SE,Dupont Durand,BW.ini')
_TreeView( $hTreeView, 'Xiaomi,Drone,FIMI X8 SE,François Pignon,Art.ini')
_TreeView( $hTreeView, 'SONY,SmartPhone,XZ Premium,François Pignon,4K.ini')			; <=== SmartPhone
_TreeView( $hTreeView, 'Xiaomi,Drone,FIMI X8 SE,Dupont Durand,Film.ini')
_TreeView( $hTreeView, 'SONY,SmartPhone,Z2,François Pignon,1080p.ini')				; <=== SmartPhone
_TreeView( $hTreeView, 'Xiaomi,Drone,FIMI X8 SE,François Pignon,Clasic.ini')
_TreeView( $hTreeView, 'SONY,SmartPhone,Z5,François Pignon,4K.ini')						; <=== SmartPhone
_TreeView( $hTreeView, 'Xiaomi,Drone,FIMI X8 SE,Dupont Durand,Nostalgia.ini')
_TreeView( $hTreeView, 'Xiaomi,Drone,FIMI X8 SE,François Pignon,F-Log.ini')
; <=== Read from list of files "Xiaomi,Drone,FIMI X8 SE,François Pignon,General.ini" etc..
;~ _GUICtrlTreeView_Expand($hTreeView)
GUISetState()
; Register message
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
; Loop
While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd
Func _TreeView( $id_Ctrl, $iSet)	; $iSet = 'General,Vivid,BW,Art,Film,Clasic,Nostalgia,F-Log.ini'
   If Not IsHWnd($id_Ctrl) Then Local $hWnd = GUICtrlGetHandle($id_Ctrl)
   $aSetExt	= StringSplit( $iSet, ".")
   $aSet	= StringSplit( $aSetExt[1], ",")
   ; Create handle array
   Global $aItem_Handles[UBound($aSet)]	; $aItem_Handles[$j]
   _GUICtrlTreeView_BeginUpdate($hTreeView)	; <============ Start UpDate
   For $i = 1 To UBound($aSet) - 1
	  If $i = 1 Then
		 $aItem_Handles[$i] = _GUICtrlTreeView_Add($hTreeView, 0, $aSet[$i])
	  Else
		 If $i = UBound($aSet) - 1 Then
			$aItem_Handles[$i] = _GUICtrlTreeView_AddChild( $hTreeView, $Last, $iSet)
		 Else
			$aItem_Handles[$i] = _GUICtrlTreeView_AddChild( $hTreeView, $Last, $aSet[$i])
		 EndIf
	  EndIf
	  Local $Last = $aItem_Handles[$i]
	  If $i = UBound($aSet) - 1 Then
		 _GUICtrlTreeView_SetIcon( $hTreeView, $Last, "shell32.dll", 72)
	  Else
		 _GUICtrlTreeView_SetIcon( $hTreeView, $Last, "shell32.dll", 3)
	  EndIf
	  ConsoleWrite('$aItem_Handles[$i='&$i&']='&$aItem_Handles[$i] &@TAB&@TAB& '$aSet[$i='&$i&']='&$aSet[$i] &@CRLF)
   Next
   _GUICtrlTreeView_EndUpdate($hTreeView)		; <============ End UpDate
   ConsoleWrite(@CRLF)
EndFunc
; Intercept the NOTIFY leassages
Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $wParam
    ; Read the data
    Local $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iCode = DllStructGetData($tNMHDR, "Code")
    ; See if it was our treeview
    Switch $hWndFrom
        Case $hTreeview
            ; Work out which item is under cursor
            $aPos = GUIGetCursorInfo($hGUI)
            $iIndex = _GUICtrlTreeView_HitTestItem($hTreeview, $aPos[0] - 10, $aPos[1] - 10)
            ; Look for code
            Switch $iCode
                Case $NM_CLICK
                    ; Get item text
					ConsoleWrite('$iIndex='&$iIndex &@TAB& "You clicked L button: " & _GUICtrlTreeView_GetText($hTreeview, $iIndex) & @CRLF)
;~                     For $i = 0 To $aItem_Handles[0]
;~                         If $aItem_Handles[$i] = $iIndex Then
;~                             ConsoleWrite("You clicked: " & _GUICtrlTreeView_GetText($hTreeview, $aItem_Handles[$i]) & @CRLF)
;~                             ExitLoop
;~                         EndIf
;~                     Next
                Case $NM_RCLICK
                    ; Click on that item
					ConsoleWrite('$iIndex='&$iIndex &@TAB& "You clicked R button: " & _GUICtrlTreeView_GetText($hTreeview, $iIndex) & @CRLF)
;~                     For $i = 0 To $aItem_Handles[0]
;~                         If $aItem_Handles[$i] = $iIndex Then
;~                             _GUICtrlTreeView_ClickItem($hTreeview, $aItem_Handles[$i])
;~                             ExitLoop
;~                         EndIf
;~                     Next
            EndSwitch
    EndSwitch
EndFunc










 
  
 