Function Reference

GUICtrlCreateTreeView

GUI用のツリービューコントロールを作成します。

GUICtrlCreateTreeView ( left, top [, width [, height [, style [, exStyle]]]] )

 

パラメータ

left コントロールの左端。-1を使用するとGUICoordModeに基づいて左端位置が計算されます。
top コントロールの上端。-1を使用するとGUICoordModeに基づいて上端位置が計算されます。
width [オプション] コントロールの幅(デフォルトは最後に使用された幅)。
height [オプション] コントロールの高さ(デフォルトは最後に使用された高さ)。
style [オプション] コントロールのスタイルを定義。GUIコントロールスタイル付録を参照。

デフォルト (-1) : $TVS_HASBUTTONS、$TVS_HASLINES、$TVS_LINESATROOT、$TVS_DISABLEDRAGDROP、$TVS_SHOWSELALWAYS
強制適用されるスタイル : $WS_TABSTOP
exStyle [オプション] コントロールの拡張スタイルを定義。拡張スタイル表を参照。

 

返し値

成功 新しく作成したコントロールの識別子(コントロールID)を返します。
失敗 0を返します。

 

注意

コントロールの情報を設定/変更する方法についてはGUICtrlUpdate...を参照。

デフォルトスタイルに他のスタイルを組み合わせる場合はBitOr($GUI_SS_DEFAULT_TREEVIEW, newstyle,...)を使用してください。

上で指定されている値を使用するためにはスクリプトに#include <TreeViewConstants.au3>と書く必要があります。

 

関連

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

 


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

Opt('MustDeclareVars', 1)

Example()

Func Example()
    Local $treeview, $generalitem, $displayitem, $aboutitem, $compitem
    Local $useritem, $resitem, $otheritem, $startlabel, $aboutlabel, $compinfo
    Local $togglebutton, $infobutton, $statebutton, $cancelbutton
    Local $msg, $item, $hItem, $text
   
    GUICreate("My GUI with treeview", 350, 215)

    $treeview = GUICtrlCreateTreeView(6, 6, 100, 150, BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)
    $generalitem = GUICtrlCreateTreeViewItem("General", $treeview)
    GUICtrlSetColor(-1, 0x0000C0)
    $displayitem = GUICtrlCreateTreeViewItem("Display", $treeview)
    GUICtrlSetColor(-1, 0x0000C0)
    $aboutitem = GUICtrlCreateTreeViewItem("About", $generalitem)
    $compitem = GUICtrlCreateTreeViewItem("Computer", $generalitem)
    $useritem = GUICtrlCreateTreeViewItem("User", $generalitem)
    $resitem = GUICtrlCreateTreeViewItem("Resolution", $displayitem)
    $otheritem = GUICtrlCreateTreeViewItem("Other", $displayitem)

    $startlabel = GUICtrlCreateLabel("TreeView Demo", 190, 90, 100, 20)
    $aboutlabel = GUICtrlCreateLabel("This little scripts demonstates the using of a treeview-control.", 190, 70, 100, 60)
    GUICtrlSetState(-1, $GUI_HIDE)  ; 初期化の間"aboutlabel"テキストを隠す
    $compinfo = GUICtrlCreateLabel("Name:" & @TAB & @ComputerName & @LF & "OS:" & @TAB & @OSVersion & @LF & "SP:" & @TAB & @OSServicePack, 120, 30, 200, 80)
    GUICtrlSetState(-1, $GUI_HIDE)  ; 初期化の間"compinfo"テキストを隠す

    GUICtrlCreateLabel("", 0, 170, 350, 2, $SS_SUNKEN)
    $togglebutton = GUICtrlCreateButton("&Toggle", 35, 185, 70, 20)
    $infobutton = GUICtrlCreateButton("&Info", 105, 185, 70, 20)
    $statebutton = GUICtrlCreateButton("Col./Exp.", 175, 185, 70, 20)
    $cancelbutton = GUICtrlCreateButton("&Cancel", 245, 185, 70, 20)

    GUICtrlSetState($generalitem, BitOR($GUI_EXPAND, $GUI_DEFBUTTON))    ; "General"アイテムを開き、太文字で描画
    GUICtrlSetState($displayitem, BitOR($GUI_EXPAND, $GUI_DEFBUTTON))    ; "Display"アイテムを開き、太文字で描画

    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)      ; 現在選択されているツリービューアイテムのコントロールIDを取得
                If $item = 0 Then
                    MsgBox(64, "TreeView Demo", "No item currently selected")
                Else
                    $text = GUICtrlRead($item, 1) ; ツリービューアイテムのテキストを取得
                    If $text == "" Then
                        MsgBox(16, "Error", "Error while retrieving infos about item")
                    Else
                        MsgBox(64, "TreeView Demo", "Current item selected is: " & $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番目のパラメータ)を隠し、'自分の'ラベル(3番目、4番目のパラメータ)を表示する
            Case $msg = $generalitem
                GUIChangeItems($aboutlabel, $compinfo, $startlabel, $startlabel)

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

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

    GUIDelete()
EndFunc   ;==>Example

Func GUIChangeItems($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   ;==>GUIChangeItems