autox 发表于 2014-2-18 18:42:27

[已解决]TreeView控件节点的加号怎么变成像win7的那种三角号?

本帖最后由 autox 于 2014-2-20 10:57 编辑

TreeView控件节点的加号怎么变成像win7的那种三角号? 也就是变成

Ycxw2008 发表于 2014-2-19 18:50:15

_WinAPI_SetWindowTheme(GUICtrlGetHandle($hTreeView), 'Explorer')
#include <WinAPITheme.au3>
#include <WinAPISys.au3>
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiTreeView.au3>
#include <GuiImageList.au3>
#include <WindowsConstants.au3>
If _WinAPI_GetVersion() < '6.0' Then
        MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), 'Error', 'Require Windows Vista or later.')
        Exit
EndIf


$Debug_TV = False ; 检查传递给函数的类名, 设置为真并使用另一控件的句柄可以看出它是否有效

_Main()

Func _Main()

        Local $hItem, $hImage, $iImage, $hTreeView
        Local $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS, $TVS_CHECKBOXES)

        GUICreate("TreeView Add Child", 400, 300)

        $hTreeView = GUICtrlCreateTreeView(2, 2, 396, 268, $iStyle, $WS_EX_CLIENTEDGE)
        GUISetState()

        $hImage = _GUIImageList_Create(16, 16, 5, 3)
        _GUIImageList_AddIcon($hImage, "shell32.dll", 110)
        _GUIImageList_AddIcon($hImage, "shell32.dll", 131)
        _GUIImageList_AddIcon($hImage, "shell32.dll", 165)
        _GUIImageList_AddIcon($hImage, "shell32.dll", 168)
        _GUIImageList_AddIcon($hImage, "shell32.dll", 137)
        _GUIImageList_AddIcon($hImage, "shell32.dll", 146)
        _GUICtrlTreeView_SetNormalImageList($hTreeView, $hImage)

        _GUICtrlTreeView_BeginUpdate($hTreeView)
        For $x = 1 To Random(2, 10, 1)
                $iImage = Random(0, 5, 1)
                $hItem = _GUICtrlTreeView_Add($hTreeView, 0, StringFormat("[%02d] New Item", $x), $iImage, $iImage)
                For $y = 1 To Random(2, 10, 1)
                        $iImage = Random(0, 5, 1)
                        _GUICtrlTreeView_AddChild($hTreeView, $hItem, StringFormat("[%02d] New Child", $y), $iImage, $iImage)
                Next
        Next
        _GUICtrlTreeView_EndUpdate($hTreeView)
        _WinAPI_SetWindowTheme(GUICtrlGetHandle($hTreeView), 'Explorer')

        ; 循环直到用户退出
        Do
        Until GUIGetMsg() = $GUI_EVENT_CLOSE
        GUIDelete()
EndFunc   ;==>_Main

autox 发表于 2014-2-20 10:49:07

回复 2# Ycxw2008

太感谢你了,终于实现了!这句代码好强大:_WinAPI_SetWindowTheme(GUICtrlGetHandle($hTreeView), 'Explorer')

penguinl 发表于 2014-8-10 01:41:55

真的大开眼界,学习了!

nqawen 发表于 2014-12-6 09:00:15

相当强大的代码

abcd1258 发表于 2015-3-16 20:06:33

相当强大,学习了!

alaws 发表于 2015-7-20 02:41:47

2楼的代码赞一个,这样设置样式美观多了
页: [1]
查看完整版本: [已解决]TreeView控件节点的加号怎么变成像win7的那种三角号?