找回密码
 加入
搜索
查看: 2972|回复: 13

请问关于TreeView与ListView一些问题

  [复制链接]
发表于 2009-3-13 20:09:19 | 显示全部楼层 |阅读模式
请问如何做到让右侧的ListView显示左侧的TreeView勾选后显示列表,并要进行排序[01]、[02]……。

附上界面代码:
#include <GUIConstants.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
#include <ListviewConstants.au3>
#Include <GuiListView.au3>
Local $i,$m,$n,$TreeItem[10][10],$Item[10][10]
Local $inipath = @ScriptDir&"\Soft.ini"
$Form = GUICreate("",420,320,-1,-1)
;建立左侧树状分支
$Treeview = GUICtrlCreateTreeView(6, 6, 150, 240,BitOR($TVS_HASBUTTONS,$TVS_CHECKBOXES,$TVS_HASLINES,$TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)
;程序分类,读取soft.ini的[Main]段
For $i = 1 To 9
        $IniSection = IniRead($inipath, "Main", $i, "None")
        If $IniSection = "None" Then ExitLoop
        $TreeItem[$i][0] = GUICtrlCreateTreeViewItem($IniSection, $TreeView)
Next
;程序分支
For $m = 1 to 9
    For $n = 1 to 5
        $name = IniRead($inipath, $m&"-"&$n, "softname", "None")
            $Item[$m][$n] = GUICtrlCreateTreeViewItem($name, $TreeItem[$m][0])
    Next
Next
;展开树状结构
For $i = 1 To 9
    GUICtrlSetState($TreeItem[$i][0], $GUI_EXPAND)
Next
;建立右侧列表
$List = GUICtrlCreateListView("",160,6,250,240,BitOR($WS_EX_CLIENTEDGE, $WS_EX_STATICEDGE, $LVS_EX_GRIDLINES, $LVS_EX_SUBITEMIMAGES,$LVS_EX_TRACKSELECT,$WS_HSCROLL, $WS_VSCROLL))
$button = GUICtrlCreateButton("确 定",310,266,60,28)
GUISetState(@SW_SHOW)
While 1
        $nMsg=GUIGetMsg()
       
        Select
                Case $nMsg = $GUI_EVENT_CLOSE
                        Exit
                Case $nMsg = $TreeItem[1][0] And BitAND(GUICtrlRead($TreeItem[1][0]),$GUI_CHECKED)=$GUI_CHECKED
                        For $i = 1 To 5
                GUICtrlSetState($Item[1][$i], $GUI_CHECKED)
            Next
                Case $nMsg = $TreeItem[1][0] And BitAND(GUICtrlRead($TreeItem[1][0]),$GUI_UNCHECKED)=$GUI_UNCHECKED
                        For $i = 1 To 5
                GUICtrlSetState($Item[1][$i], $GUI_UNCHECKED)
                        Next
                Case $nMsg = $TreeItem[2][0] And BitAND(GUICtrlRead($TreeItem[2][0]),$GUI_CHECKED)=$GUI_CHECKED
                        For $i = 1 To 5
                GUICtrlSetState($Item[2][$i], $GUI_CHECKED)
            Next
                Case $nMsg = $TreeItem[2][0] And BitAND(GUICtrlRead($TreeItem[2][0]),$GUI_UNCHECKED)=$GUI_UNCHECKED
                        For $i = 1 To 5
                GUICtrlSetState($Item[2][$i], $GUI_UNCHECKED)
                        Next
               
        EndSelect
WEnd

[ 本帖最后由 xulinghai 于 2009-3-13 20:22 编辑 ]

本帖子中包含更多资源

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

×
 楼主| 发表于 2009-3-13 20:20:04 | 显示全部楼层
忘了配置文件了,Soft.ini
[Main]
;软件分类
1=软件分类1
2=软件分类2

[1-1]
softname=程序名1-1
softpath=
softicon=
[1-2]
softname=程序名1-2
softpath=
softicon=
[1-3]
softname=程序名1-3
softpath=
softicon=
[1-4]
softname=程序名1-4
softpath=
softicon=
[1-5]
softname=程序名1-5
softpath=
softicon=

[2-1]
softname=程序名2-1
softpath=
softicon=
[2-2]
softname=程序名2-2
softpath=
softicon=
[2-3]
softname=程序名2-3
softpath=
softicon=
[2-4]
softname=程序名2-4
softpath=
softicon=
[2-5]
softname=程序名2-5
softpath=
softicon=
发表于 2009-3-14 09:27:33 | 显示全部楼层
想仿自由天空的驱动安装器??

得注册事件吧
 楼主| 发表于 2009-3-16 19:29:04 | 显示全部楼层
没有人可以提供帮助吗?
发表于 2009-10-14 18:11:03 | 显示全部楼层
我帮你顶顶吧!
发表于 2009-10-15 19:32:01 | 显示全部楼层
在au3的安装文件夹中有 gui 的高级示例中,有类似代码,可以参考下
发表于 2010-1-28 16:56:39 | 显示全部楼层
帮你顶下,最近我也在学习这方面的知识。
发表于 2010-1-30 21:46:29 | 显示全部楼层
顶起,希望有高手给个例子出来。
发表于 2010-1-31 13:44:38 | 显示全部楼层
想用这样的方法做个软件安装器,看来做不成了。
发表于 2010-1-31 13:49:21 | 显示全部楼层
在循环里检测勾选的控件,然后再修改ListView里面的数据
发表于 2010-1-31 14:01:02 | 显示全部楼层
这个我能实现 就是不会排列顺序  如果可以给个例子学习一下就好了
发表于 2010-1-31 18:34:57 | 显示全部楼层
_GUICtrlListView_FindInText 判断之前有没有选择的项目,
有 则 $x += 1,没有 则 $x = 0
然后 _GUICtrlListView_InsertItem($List, '...', $x) 插入
发表于 2010-1-31 18:48:49 | 显示全部楼层
本帖最后由 netegg 于 2010-1-31 18:50 编辑
这个我能实现 就是不会排列顺序  如果可以给个例子学习一下就好了
jinhao 发表于 2010-1-31 14:01


排序?
_GUICtrlListView_BeginUpdate
_GUICtrlListView_SortItems
_GUICtrlListView_EndUpdate
发表于 2010-4-26 11:33:22 | 显示全部楼层
好。 学习了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-4 16:30 , Processed in 0.417555 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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