找回密码
 加入
搜索
查看: 2069|回复: 5

[系统综合] TreeView和ListView共用ImageList,TreeView图标覆盖问题【已解决】

  [复制链接]
发表于 2016-9-29 20:26:25 | 显示全部楼层 |阅读模式
本帖最后由 imutraveler 于 2016-10-26 23:30 编辑

TreeView图标设置了点击和非点击2种状态图标,,但是listView也使用该ImageList的时候,TreeView的图标为什么就不刷新的,而变成了覆盖呢?

下面是有问题的 例子。。。  要没问题注释35行, 启用38行,
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
#include <GuiTreeView.au3>

$Form1 = GUICreate("test", 500, 280)

$hImage = _GUIImageList_Create(16, 16, 5, 3)
_GUIImageList_AddIcon($hImage, 'shell32.dll', 110)
_GUIImageList_AddIcon($hImage, 'shell32.dll', 137)
_GUIImageList_AddIcon($hImage, 'shell32.dll', 146)
_GUIImageList_AddIcon($hImage, 'shell32.dll', 66)

$iImage = _GUIImageList_Create(16, 16, 5, 3)
_GUIImageList_AddIcon($iImage, 'shell32.dll', 110)
_GUIImageList_AddIcon($iImage, 'shell32.dll', 137)
_GUIImageList_AddIcon($iImage, 'shell32.dll', 146)
_GUIImageList_AddIcon($iImage, 'shell32.dll', 66)

$TreeView = GUICtrlCreateTreeView(10, 10, 160, 260, BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)
_GUICtrlTreeView_SetNormalImageList($TreeView, $hImage)

$Group = _GUICtrlTreeView_Add($TreeView, 0, "分组列表", 0, 0)
_GUICtrlTreeView_AddChild($TreeView, $Group, "测试分组01", 1, 2) ;生成分组列表
_GUICtrlTreeView_AddChild($TreeView, $Group, "测试分组02", 1, 2) ;生成分组列表
_GUICtrlTreeView_AddChild($TreeView, $Group, "测试分组03", 1, 2) ;生成分组列表
_GUICtrlTreeView_AddChild($TreeView, $Group, "测试分组04", 1, 2) ;生成分组列表
_GUICtrlTreeView_AddChild($TreeView, $Group, "测试分组05", 1, 2) ;生成分组列表
_GUICtrlTreeView_Expand($TreeView, $Group) ;展开列表
_GUICtrlTreeView_SelectItemByIndex($TreeView, $Group, 0) ;启动时默认选择第一个分组

$ListView = GUICtrlCreateListView("", 180, 10, 310, 260)

;;;  !!!  与 TreeView 共用一个 ImageList
_GUICtrlListView_SetImageList($ListView, $hImage, 1)

;;;  !!!  单独使用一个 ImageList
;~ _GUICtrlListView_SetImageList($ListView, $iImage, 1)


_GUICtrlListView_AddColumn($ListView, "1", 100) ;创建列
_GUICtrlListView_AddColumn($ListView, "2", 80) ;创建列
_GUICtrlListView_AddColumn($ListView, "3", 80) ;创建列
_GUICtrlListView_SetExtendedListViewStyle($ListView, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES)) ;设置ListView样式

For $i = 1 To 5
        _GUICtrlListView_AddItem($ListView, StringFormat("测试[%02d]", $i), 3)
        _GUICtrlListView_AddSubItem($ListView, $i-1, "000", 1)
        _GUICtrlListView_AddSubItem($ListView, $i-1, "000", 2)
Next

GUISetState(@SW_SHOW)

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
        EndSwitch
WEnd
发表于 2016-9-30 09:11:53 | 显示全部楼层
本帖最后由 chzj589 于 2016-9-30 09:14 编辑

回复 1# imutraveler
这样是什么问题?我没注释35行

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2016-9-30 11:09:19 | 显示全部楼层
回复 2# chzj589


    在XP和 2003  上 没问题 , 我试过了!!

    你试试 win7和win10
发表于 2016-9-30 11:36:43 | 显示全部楼层
回复 3# imutraveler
我电脑没装win7和win10系统
 楼主| 发表于 2016-9-30 13:39:15 | 显示全部楼层
回复 4# chzj589


        
发表于 2016-9-30 15:39:06 | 显示全部楼层
回复 5# imutraveler

AU3在XP系统编辑是最稳定的!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-17 01:31 , Processed in 0.077570 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表