yhxhappy 发表于 2010-11-29 23:14:31

[已解决] 如何在事件模式下取得所点击的 TreeView Item的控件ID?

本帖最后由 yhxhappy 于 2010-11-30 14:54 编辑

小弟的TREEVIEW 是带 CHECKBOX 的那种,现在想实现的是 选择子项则父项也跟着勾选,父项取消勾选则子项全部取消选择。在消息循环模式已经解决了,但现在换到事件模式就不懂了。

关键的是不知道什么取得最后点击的项目的ID。因为全部的项目信息我是存储在一个数组里面,只要知道最后选择的项目ID我就好办了

使用 @GUI_CtrlId 似乎对TREE控件没效果,没有返回值的,还请大家帮帮忙#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <TreeViewConstants.au3>

Opt("GUIOnEventMode", 1); 切换到 OnEvent 模式

GUICreate(" GUI treeview 控件", 350, 215)
GUISetOnEvent($GUI_EVENT_CLOSE, "GUI")

$treeview = GUICtrlCreateTreeView(6, 6, 300, 200, $TVS_CHECKBOXES+$TVS_HASLINES+$TVS_LINESATROOT+$TVS_HASBUTTONS, $WS_EX_CLIENTEDGE)
        GUICtrlSetOnEvent(-1, "GUI")
$item1 = GUICtrlCreateTreeViewItem("常规", $treeview)
GUICtrlCreateTreeViewItem("关于...", $item1)
GUICtrlCreateTreeViewItem("计算机", $item1)
GUICtrlCreateTreeViewItem("用户名", $item1)
GUICtrlCreateTreeViewItem("分辨率", $item1)
GUICtrlCreateTreeViewItem("其它", $item1)

GUISetState()

While 1
        ;;
WEnd

Func GUI()
        Switch @GUI_CtrlId
        Case $GUI_EVENT_CLOSE
                Exit
        Case $treeview
                ;MsgBox(0,"",@GUI_CtrlId)               
        EndSwitch
EndFunc

afan 发表于 2010-11-30 12:38:04

把第11行放在第12行后面~

yhxhappy 发表于 2010-11-30 14:54:25

哦,明白了,谢谢!
页: [1]
查看完整版本: [已解决] 如何在事件模式下取得所点击的 TreeView Item的控件ID?