Jump to content

multiple icons for TreeView


Guest cybrsrfr
 Share

Recommended Posts

Guest cybrsrfr

Using the example code provided with AutoIt I added...

GUICtrlSetImage (-1, "shell32.dll",22, 0).

And it sets the same icon to all items in the same TreeView.

Is it possible to have a different icon per item in the tree?

Or per parent item and subitem?

Thanks in advance!

#include <GUIConstants.au3>

GUICreate("My GUI with treeview",350,212)

$treeview = GUICtrlCreateTreeView (6,6,100,150,BitOr($TVS_HASBUTTONS,$TVS_HASLINES,$TVS_LINESATROOT,$TVS_DISABLEDRAGDROP,$TVS_SHOWSELALWAYS),$WS_EX_CLIENTEDGE)
$generalitem = GUICtrlCreateTreeViewitem ("General",$treeview)
$displayitem = GUICtrlCreateTreeViewitem ("Display",$treeview)

GUICtrlSetImage (-1, "shell32.dll",22, 0)
$aboutitem = GUICtrlCreateTreeViewitem ("About",$generalitem)

GUICtrlSetImage (-1, "shell32.dll",134, 0)
$compitem = GUICtrlCreateTreeViewitem ("Computer",$generalitem)
$useritem = GUICtrlCreateTreeViewitem ("User",$generalitem)
$resitem = GUICtrlCreateTreeViewitem ("Resolution",$displayitem)
$otheritem = GUICtrlCreateTreeViewitem ("Other",$displayitem)
GUICtrlSetImage (-1, "shell32.dll",102, 0)

$startlabel = GUICtrlCreateLabel ("TreeView Demo",190,90,100,20)
$aboutlabel = GUICtrlCreateLabel ("This little scripts demonstates the using of a treeview-control.",190,70,100,60)
GUICtrlSetState(-1,$GUI_HIDE)
$compinfo = GUICtrlCreateLabel ("Name:" & @TAB & @ComputerName & @LF & "OS:" & @TAB & @OSVersion & @LF & "SP:" & @TAB & @OSServicePack,120,30,200,80)
GUICtrlSetState(-1,$GUI_HIDE)

$okbutton = GUICtrlCreateButton ("OK",100,185,70,20)
$cancelbutton = GUICtrlCreateButton ("Cancel",180,185,70,20)


GUISetState ()
While 1
    $msg = GUIGetMsg()
    Select
        Case $msg = $cancelbutton Or $msg = $GUI_EVENT_CLOSE
            ExitLoop
    
        Case $msg = $generalitem
            GUIChangeItems($aboutlabel,$compinfo,$startlabel,$startlabel)
        
        Case $msg = $aboutitem
            GUICtrlSetState ($compinfo,$GUI_HIDE)
            GUIChangeItems($startlabel,$startlabel,$aboutlabel,$aboutlabel)
            
        Case $msg = $compitem
            GUIChangeItems($startlabel,$aboutlabel,$compinfo,$compinfo)
    EndSelect
WEnd

GUIDelete()
Exit

Func GUIChangeItems($hidestart,$hideend,$showstart,$showend)
    Local $idx,$hidestart,$hideend,$showstart,$showend
    
    For $idx = $hidestart To $hideend
        GUICtrlSetState ($idx,$GUI_HIDE)
    Next
    For $idx = $showstart To $showend
        GUICtrlSetState ($idx,$GUI_SHOW)
    Next    
EndFunc
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...