找回密码
 加入
搜索
查看: 5857|回复: 15

[GUI管理] TreeView相关的问题!

 火.. [复制链接]
发表于 2010-3-20 10:35:43 | 显示全部楼层 |阅读模式






像这种效果怎么做?就是点一下TreeView里的分类,右边显示相应的功能!

本帖子中包含更多资源

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

×
发表于 2010-3-20 11:18:25 | 显示全部楼层
自己不想直接到这要代码呀,这个又不难,安装目录的example文件夹里有例子
发表于 2010-3-20 11:20:50 | 显示全部楼层
老问题哦呵呵
发表于 2010-3-20 11:55:13 | 显示全部楼层
本帖最后由 水木子 于 2010-3-20 12:08 编辑

可以注册TreeView的事件吧!

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

 楼主| 发表于 2010-4-12 11:09:19 | 显示全部楼层
还没有解决吧!再顶起来看看!
发表于 2010-4-12 19:52:06 | 显示全部楼层
这么久了问题还没解决吗?

看看吧!如果项目多,可以用数组操作。
#include <GuiTreeView.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Local $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS)
$hGUI = GUICreate("Treeview", 600, 450)
$Treeview = GUICtrlCreateTreeView(5, 5, 180, 440, $iStyle, $WS_EX_CLIENTEDGE)

$Fonts1 = GUICtrlCreateTreeViewItem("项目1", $Treeview)
$Font11 = GUICtrlCreateTreeViewItem("项目1-1", $Fonts1)
$Font12 = GUICtrlCreateTreeViewItem("项目1-2", $Fonts1)
$Font13 = GUICtrlCreateTreeViewItem("项目1-3", $Fonts1)
GUICtrlSetState($Fonts1, $GUI_EXPAND)

$Fonts2 = GUICtrlCreateTreeViewItem("项目2", $Treeview)
$Font21 = GUICtrlCreateTreeViewItem("项目2-1", $Fonts2)
$Font22 = GUICtrlCreateTreeViewItem("项目2-2", $Fonts2)
$Font23 = GUICtrlCreateTreeViewItem("项目2-3", $Fonts2)
GUICtrlSetState($Fonts2, $GUI_EXPAND)

$Fonts3 = GUICtrlCreateTreeViewItem("项目3", $Treeview)
$Font31 = GUICtrlCreateTreeViewItem("项目3-1", $Fonts3)
$Font32 = GUICtrlCreateTreeViewItem("项目3-2", $Fonts3)
$Font33 = GUICtrlCreateTreeViewItem("项目3-3", $Fonts3)
GUICtrlSetState($Fonts3, $GUI_EXPAND)

$Fonts4 = GUICtrlCreateTreeViewItem("项目4", $Treeview)
$Font41 = GUICtrlCreateTreeViewItem("项目4-1", $Fonts4)
$Font42 = GUICtrlCreateTreeViewItem("项目4-2", $Fonts4)
$Font43 = GUICtrlCreateTreeViewItem("项目4-3", $Fonts4)
GUICtrlSetState($Fonts4, $GUI_EXPAND)

$Label1 = GUICtrlCreateLabel("", 350, 150, 200, 24)
GUICtrlSetFont(-1, 18, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)

While 1
        Switch GUIGetMsg()
                Case - 3
                        Exit
                Case $Font11, $Font12, $Font13, $Font21, $Font22, $Font23, $Font31, $Font32, $Font33, $Font41, $Font42, $Font43
                        $Text = _GUICtrlTreeView_GetText($Treeview, _GUICtrlTreeView_GetSelection($Treeview))
                        GUICtrlSetData($Label1, $Text)
        EndSwitch
WEnd

评分

参与人数 1金钱 +40 贡献 +10 收起 理由
hzxymkb + 40 + 10 高手就是高手!

查看全部评分

 楼主| 发表于 2010-4-13 10:23:23 | 显示全部楼层
哈哈!高手终于出手了!谢谢了!
 楼主| 发表于 2010-4-13 10:24:20 | 显示全部楼层
回复 2# netegg
我找了一次!没有找到!
发表于 2010-4-13 10:55:19 | 显示全部楼层
回复 7# hzxymkb
呵呵!什么高手啊!还不是只菜鸟!
只是你的问题比较简单而已。
高手?还早着呢!
发表于 2010-4-13 11:38:02 | 显示全部楼层
回复 8# hzxymkb

{autoit3dir}\Examples\GUI\Advanced\treeview.au3
 楼主| 发表于 2010-4-13 12:15:39 | 显示全部楼层
回复 10# netegg
谢谢了哈!
发表于 2010-5-7 00:22:53 | 显示全部楼层
我遇到的问题和楼主差不多,不过我的树形菜单的内容是从ini文件中读出来的,也就是说item数量不定。从例子上看来每个item都有一个变量与之对应(楼上的Font1……),但我是动态的,不知如何操作?
谢谢
发表于 2010-5-7 06:49:57 | 显示全部楼层
本帖最后由 netegg 于 2010-5-7 06:52 编辑
我遇到的问题和楼主差不多,不过我的树形菜单的内容是从ini文件中读出来的,也就是说item数量不定。从例子上 ...
digibread 发表于 2010-5-7 00:22


用while循环
如果用iniread...读取的话再加上记得没错的话,每层读取,都会是下一层的父项数组,元素[0]是项目个数,定义循环添加的操作就行了
发表于 2010-5-7 15:03:57 | 显示全部楼层
谢谢,我现在遇到的问题是树状结构出来后,如何为每个item绑定click事件?item是动态循环出来的,上面代码中的这段
# Case $Font11, $Font12, $Font13, $Font21, $Font22, $Font23, $Font31, $Font32, $Font33, $Font41, $Font42, $Font43
#                         $Text = _GUICtrlTreeView_GetText($Treeview, _GUICtrlTreeView_GetSelection($Treeview))
#                         GUICtrlSetData($Label1, $Text)
Case后面是定死的,而我现在是动态的,那么Case后面该如何写?

谢谢
发表于 2010-5-8 22:44:28 | 显示全部楼层
楼上,在你另一帖子已经跟帖
应该能解决你的问题
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-2 22:53 , Processed in 0.114670 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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