请问关于TreeView与ListView一些问题
请问如何做到让右侧的ListView显示左侧的TreeView勾选后显示列表,并要进行排序、……。附上界面代码:
#include <GUIConstants.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
#include <ListviewConstants.au3>
#Include <GuiListView.au3>
Local $i,$m,$n,$TreeItem,$Item
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的段
For $i = 1 To 9
$IniSection = IniRead($inipath, "Main", $i, "None")
If $IniSection = "None" Then ExitLoop
$TreeItem[$i] = 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])
Next
Next
;展开树状结构
For $i = 1 To 9
GUICtrlSetState($TreeItem[$i], $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 And BitAND(GUICtrlRead($TreeItem),$GUI_CHECKED)=$GUI_CHECKED
For $i = 1 To 5
GUICtrlSetState($Item[$i], $GUI_CHECKED)
Next
Case $nMsg = $TreeItem And BitAND(GUICtrlRead($TreeItem),$GUI_UNCHECKED)=$GUI_UNCHECKED
For $i = 1 To 5
GUICtrlSetState($Item[$i], $GUI_UNCHECKED)
Next
Case $nMsg = $TreeItem And BitAND(GUICtrlRead($TreeItem),$GUI_CHECKED)=$GUI_CHECKED
For $i = 1 To 5
GUICtrlSetState($Item[$i], $GUI_CHECKED)
Next
Case $nMsg = $TreeItem And BitAND(GUICtrlRead($TreeItem),$GUI_UNCHECKED)=$GUI_UNCHECKED
For $i = 1 To 5
GUICtrlSetState($Item[$i], $GUI_UNCHECKED)
Next
EndSelect
WEnd
[ 本帖最后由 xulinghai 于 2009-3-13 20:22 编辑 ] 忘了配置文件了,Soft.ini
;软件分类
1=软件分类1
2=软件分类2
softname=程序名1-1
softpath=
softicon=
softname=程序名1-2
softpath=
softicon=
softname=程序名1-3
softpath=
softicon=
softname=程序名1-4
softpath=
softicon=
softname=程序名1-5
softpath=
softicon=
softname=程序名2-1
softpath=
softicon=
softname=程序名2-2
softpath=
softicon=
softname=程序名2-3
softpath=
softicon=
softname=程序名2-4
softpath=
softicon=
softname=程序名2-5
softpath=
softicon= 想仿自由天空的驱动安装器??
得注册事件吧 没有人可以提供帮助吗? 我帮你顶顶吧! 在au3的安装文件夹中有 gui 的高级示例中,有类似代码,可以参考下 帮你顶下,最近我也在学习这方面的知识。 顶起,希望有高手给个例子出来。 想用这样的方法做个软件安装器,看来做不成了。 在循环里检测勾选的控件,然后再修改ListView里面的数据 这个我能实现 就是不会排列顺序如果可以给个例子学习一下就好了 _GUICtrlListView_FindInText 判断之前有没有选择的项目,
有 则 $x += 1,没有 则 $x = 0
然后 _GUICtrlListView_InsertItem($List, '...', $x) 插入 本帖最后由 netegg 于 2010-1-31 18:50 编辑
这个我能实现 就是不会排列顺序如果可以给个例子学习一下就好了
jinhao 发表于 2010-1-31 14:01 http://www.autoitx.com/images/common/back.gif
排序?
_GUICtrlListView_BeginUpdate
_GUICtrlListView_SortItems
_GUICtrlListView_EndUpdate 好。 学习了
页:
[1]