基 础 函 数 参 考


GUICtrlCreateTreeView

创建树视图(TreeView)控件.

GUICtrlCreateTreeView ( 左距, 顶距 [, 宽度 [, 高度 [, 样式 [, 扩展样式]]]] )

参 数

左距 控件左侧的位置. 若此值为 -1, 则根据 GUICoordMode 的设置计算左侧位置.
顶距 控件上方的位置. 若此值为 -1, 则根据 GUICoordMode 的设置计算顶部位置.
宽度 [可选参数] 控件的宽度(默认使用先前的宽度).
高度 [可选参数] 控件的高度(默认使用先前的高度).
样式 [可选参数] 控件的样式. 查看附录 GUI 控件样式表.

默认样式 (-1) : $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS
强制样式 : $WS_TABSTOP
扩展样式 [可选参数] 控件的扩展样式. 查看附录 扩展样式表.

返 回 值

成功: 返回控件标识符(控件ID).
失败: 返回 0.

备 注

设置或者修改控件信息, 参考 GUICtrlUpdate....

要在默认样式上添加新样式, 可使用 BitOr($GUI_SS_DEFAULT_TREEVIEW, 新样式,...) 语句.

使用上面列出的值必须将 #include <TreeViewConstants.au3> 语句写入脚本中.

相 关 函 数

GUICtrlCreateTreeViewItem, GUICoordMode (Option), GUICtrlUpdate..., GUIGetMsg, GUICtrlRead

函 数 示 例


#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <TreeViewConstants.au3>
#include <StaticConstants.au3>

Example()

Func Example()
    Local $treeview, $generalitem , $displayitem , $aboutitem , $compitem
    Local $startlabel, $aboutlabel, $compinfo
    Local $togglebutton, $infobutton, $statebutton, $cancelbutton
    Local $msg, $item, $hItem , $text

    GUICreate("我的树视图 GUI", 350, 215)

    $treeview = GUICtrlCreateTreeView(6, 6, 100, 150, BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)
    $generalitem  = GUICtrlCreateTreeViewItem ("常规", $treeview)
    GUICtrlSetColor(-1, 0x0000C0)
    $displayitem  = GUICtrlCreateTreeViewItem ("显示器", $treeview)
    GUICtrlSetColor(-1, 0x0000C0)
    $aboutitem  = GUICtrlCreateTreeViewItem ("关于...", $generalitem )
    $compitem  = GUICtrlCreateTreeViewItem ("计算机", $generalitem )
    GUICtrlCreateTreeViewItem ("用户", $generalitem )
    GUICtrlCreateTreeViewItem ("分辨率", $displayitem )
    GUICtrlCreateTreeViewItem ("其它", $displayitem )

    $startlabel = GUICtrlCreateLabel("树视图演示", 190, 90, 100, 20)
    $aboutlabel = GUICtrlCreateLabel("这个小脚本演示如何使用 TreeView 控件.", 190, 70, 100, 60)
    GUICtrlSetState(-1, $GUI_HIDE) ; 初始化隐藏 "关于" 标记的文本
    $compinfo = GUICtrlCreateLabel("名称:" & @TAB & @ComputerName & @LF & "系统:" & @TAB & @OSVersion & @LF & "服务包:" & @TAB & @OSServicePack, 120, 30, 200, 80)
    GUICtrlSetState(-1, $GUI_HIDE) ; 初始化隐藏 "计算机" 信息标记的文本

    GUICtrlCreateLabel("", 0, 170, 350, 2, $SS_SUNKEN)
    $togglebutton = GUICtrlCreateButton("切换 &T", 35, 185, 70, 20)
    $infobutton = GUICtrlCreateButton("信息 &I", 105, 185, 70, 20)
    $statebutton = GUICtrlCreateButton("Col./Exp.", 175, 185, 70, 20)
    $cancelbutton = GUICtrlCreateButton("取消 &C", 245, 185, 70, 20)

    GUICtrlSetState($generalitem , BitOR($GUI_EXPAND, $GUI_DEFBUTTON)) ; 展开 "常规" 项目并显示为粗体文字
    GUICtrlSetState($displayitem , BitOR($GUI_EXPAND, $GUI_DEFBUTTON)) ; 展开 "显示器" 项目并显示为粗体文字

    GUISetState()
    While 1
        $msg = GUIGetMsg()
        Select
            Case $msg = $cancelbutton Or $msg = $GUI_EVENT_CLOSE
                ExitLoop

            Case $msg = $togglebutton ; 切换粗体文字
                If BitAND(GUICtrlRead($generalitem ), $GUI_DEFBUTTON) Then
                    GUICtrlSetState($generalitem , 0)
                    GUICtrlSetState($displayitem , 0)
                Else
                    GUICtrlSetState($generalitem , $GUI_DEFBUTTON)
                    GUICtrlSetState($displayitem , $GUI_DEFBUTTON)
                EndIf

            Case $msg = $infobutton
                $item = GUICtrlRead($treeview) ; 获取当前选中 TreeView 项目的控件 ID
                If $item = 0 Then
                    MsgBox(64, "树视图演示", "目前没有选定任何项目")
                Else
                    $text = GUICtrlRead($item, 1) ; 获取 TreeView 的项目文字
                    If $text == "" Then
                        MsgBox(16, "错误", "检索项目相关信息时出错 ")
                    Else
                        MsgBox(64, "树视图演示", "当前选定项目: " & $text) ; $advmsg[0] 包含项目文本, $advmsg[1] 包含项目状态值
                    EndIf
                EndIf

            Case $msg = $statebutton
                $item = GUICtrlRead($treeview)
                If $item > 0 Then
                    $hItem  = GUICtrlGetHandle($item)
                    GUICtrlSendMsg($treeview, $TVM_EXPAND, $TVE_TOGGLE, $hItem )
                EndIf

                ; 下列项目会隐藏其它标记文本(第1和第2个参数), 并显示原有标记文本(第三和第四个参数)
            Case $msg = $generalitem
                GUIChangeItemss($aboutlabel, $compinfo, $startlabel, $startlabel)

            Case $msg = $aboutitem
                GUICtrlSetState($compinfo, $GUI_HIDE)
                GUIChangeItemss($startlabel, $startlabel, $aboutlabel, $aboutlabel)

            Case $msg = $compitem
                GUIChangeItemss($startlabel, $aboutlabel, $compinfo, $compinfo)
        EndSelect
    WEnd

    GUIDelete()
EndFunc   ;==>Example

Func GUIChangeItemss($hidestart, $hideend, $showstart, $showend)
    Local $idx

    For $idx = $hidestart To $hideend
        GUICtrlSetState($idx, $GUI_HIDE)
    Next
    For $idx = $showstart To $showend
        GUICtrlSetState($idx, $GUI_SHOW)
    Next
EndFunc   ;==>GUIChangeItemss

provider with jb51.net (unicode)