BuckMaster Posted July 9, 2012 Posted July 9, 2012 I've been having some problems adding a icon from a .dll into a treeview, Does the function _GUICtrlTreeView_SetIcon only allow you to use Shell icons or am i doing something wrong? My main script is way to large to post up so I've created a short example to illustrate my problem the resource file is attatched expandcollapse popup#include <GUITreeView.au3> #include <TreeViewConstants.au3> #include <GUIConstants.au3> Global $GUITree, $hTree $hGUI = GUICreate("Example", 500, 500, -1, -1) GUICtrlCreateLabel("Add Item Type ( 1 - 22 )", 220, 20) $hCombo = GUICtrlCreateCombo("", 220, 40, 50, 22, 0x0003) GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22", "1") $hCreate = GUICtrlCreateButton("Create Tree Item", 280, 39, 100, 22) $hTree = GUICtrlCreateTreeView( 10, 10, 200, 480, BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS)) GUISetState() _GUICtrlTreeView_BeginUpdate($hTree) $GUITree = _GUICtrlTreeView_Add($hTree, 0, "hGUI") _GUICtrlTreeView_SetIcon($GUITree, $GUITree, @ScriptDir&"\Resources.dll", 119) _GUICtrlTreeView_EndUpdate($hTree) While 1 $hMsg = GUIGetMsg() Switch $hMsg Case -3 Exit Case $hCreate $hTreeItem = _AddTreeItem("Control Type "&GUICtrlRead($hCombo), GUICtrlRead($hCombo)) _GUICtrlTreeView_Expand($hTree) EndSwitch WEnd Func _AddTreeItem($aName, $aType) _GUICtrlTreeView_BeginUpdate($hTree) $hItem = _GUICtrlTreeView_AddChild($hTree, $GUITree, $aName) _GUICtrlTreeView_SetIcon($hTree, $hItem, @ScriptDir&"\Resources.dll", _GetIcon($aType)) _GUICtrlTreeView_EndUpdate($hTree) ConsoleWrite("+ _AddTreeItem("&$aName&", "&$aType&") Icon # "&_GetIcon($aType)&@CRLF) Return $hItem EndFunc Func _GetIcon($Type) If $Type = 1 Then Return 122 ElseIf $Type = 2 Then Return 102 ElseIf $Type = 3 Then Return 121 ElseIf $Type = 4 Then Return 114 ElseIf $Type = 5 Then Return 105 ElseIf $Type = 6 Then Return 129 ElseIf $Type = 7 Then Return 107 ElseIf $Type = 8 Then Return 123 ElseIf $Type = 9 Then Return 111 ElseIf $Type = 10 Then Return 127 ElseIf $Type = 11 Then Return 120 ElseIf $Type = 12 Then Return 128 ElseIf $Type = 13 Then Return 135 ElseIf $Type = 14 Then Return 138 ElseIf $Type = 15 Then Return 126 ElseIf $Type = 16 Then Return 136 ElseIf $Type = 17 Then Return 133 ElseIf $Type = 18 Then Return 124 ElseIf $Type = 19 Then Return 116 ElseIf $Type = 20 Then Return 113 ElseIf $Type = 21 Then Return 118 ElseIf $Type = 22 Then Return 104 EndIf EndFunc Any help would be appreciated Resources.zip
AZJIO Posted July 10, 2012 Posted July 10, 2012 expandcollapse popup#include <GUITreeView.au3> #include <TreeViewConstants.au3> #include <GUIConstants.au3> Global $GUITree, $hTree $hGUI = GUICreate("Example", 500, 500, -1, -1) GUICtrlCreateLabel("Add Item Type ( 1 - 22 )", 220, 20) $hCombo = GUICtrlCreateCombo("", 220, 40, 50, 22, 0x0003) GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22", "1") $hCreate = GUICtrlCreateButton("Create Tree Item", 280, 39, 100, 22) $hTree = GUICtrlCreateTreeView(10, 10, 200, 480, BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS)) GUISetState() $GUITree = _GUICtrlTreeView_Add($hTree, 0, "hGUI") _GUICtrlTreeView_SetIcon($hTree, $GUITree, @ScriptDir & "Resources.dll", -119) ; _GUICtrlTreeView_SetIcon($hTree, $GUITree, "shell32.dll", 39) While 1 Switch GUIGetMsg() Case -3 Exit Case $hCreate $hTreeItem = _AddTreeItem("Control Type " & GUICtrlRead($hCombo), GUICtrlRead($hCombo)) _GUICtrlTreeView_Expand($hTree) EndSwitch WEnd Func _AddTreeItem($aName, $aType) $hItem = _GUICtrlTreeView_AddChild($hTree, $GUITree, $aName) _GUICtrlTreeView_SetIcon($hTree, $hItem, @ScriptDir & "Resources.dll", _GetIcon($aType)) ; _GUICtrlTreeView_SetIcon($hTree, $hItem, "shell32.dll", _GetIcon($aType)) Return $hItem EndFunc Func _GetIcon($Type) Switch $Type Case 1 Return -122 Case 2 Return -102 Case 3 Return -121 Case 4 Return -114 Case 5 Return -105 Case 6 Return -129 Case 7 Return -107 Case 8 Return -123 Case 9 Return -111 Case 10 Return -127 Case 11 Return -120 Case 12 Return -128 Case 13 Return -135 Case 14 Return -138 Case 15 Return -126 Case 16 Return -136 Case 17 Return -133 Case 18 Return -124 Case 19 Return -116 Case 20 Return -113 Case 21 Return -118 Case 22 Return -104 EndSwitch EndFunc My other projects or all
BuckMaster Posted July 10, 2012 Author Posted July 10, 2012 AZJIO Thank You very much, i would have never of thought to make it negative. BuckMaster
DickG Posted February 11, 2016 Posted February 11, 2016 I'm trying to set a treeview icon using an icon from the Web, like this: InetGet("https://www.fastmail.com/static/favicons/icon-64x64.png", @ScriptDir & "fastmail.png", 1, 1) If Not FileExists(@ScriptDir & "fastmail.png") Then MsgBox(0, "Test", "Whoops! " & @ScriptDir & "\fastmail.png does not exist.") EndIf $SetIcon = _GUICtrlTreeView_SetIcon($Tree, $L2_item, @ScriptDir & "fastmail.png") If $SetIcon = "False" Then MsgBox(0, "Test", "Whoops! Icon not set.") EndIf But it's not setting it. It does save the file, though. I think the problem is that _GUICtrlTreeView_SetIcon() expects to retrieve an icon from an .exe or .dll rather than directly from an image file, like GUICtrlSetImage() does when setting an icon for a listview item or a button. But I don't know how to do that. Any idea? I'm building a treeview that shows bookmarks, and I want to display the icon for each bookmark.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now