找回密码
 加入
搜索
查看: 3005|回复: 5

[GUI管理] [已解决]树形列表能不能去掉子项的checkbox,只保留第一层的checkbox

  [复制链接]
发表于 2012-10-15 21:02:02 | 显示全部楼层 |阅读模式
本帖最后由 duck904 于 2012-10-22 16:46 编辑

如题,树形列表能不能去掉子项的checkbox,只保留第一层的checkbox。
如下图,第二层的checkbox不要,能做到吗

本帖子中包含更多资源

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

×
 楼主| 发表于 2012-10-16 15:34:37 | 显示全部楼层
谢谢,自己组装个gui工程量太大了,水平也不够。
发表于 2012-10-16 19:43:59 | 显示全部楼层
本帖最后由 netegg 于 2012-10-18 14:20 编辑

[au3]#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiConstantsEx.au3>
#include <GuiTreeView.au3>
#include <GuiImageList.au3>
#include <WindowsConstants.au3>

Opt('MustDeclareVars', 1)

$Debug_TV = False ; Check ClassName being passed to functions, set to True and use a handle to another control to see it work

_Main()

Func _Main()

        Local $hItem[6], $hTreeView, $hSubItem[5]
        Local $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS, $TVS_CHECKBOXES)

        GUICreate("TreeView Checked", 400, 300)

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

        _GUICtrlTreeView_BeginUpdate($hTreeView)
        For $x = 0 To UBound($hItem) - 1
                $hItem[$x] = GUICtrlCreateTreeViewItem(StringFormat("[%02d] New Item", $x + 1), $hTreeView)
                For $y = 0 To 4
                        $hSubItem[$y] = GUICtrlCreateTreeViewItem(StringFormat("[%02d] New SubItem", $y + 1), $hItem[$x])
                        _TreeViewRemoveCheckbox($hTreeView, $hSubItem[$y])
                Next
        Next
        _GUICtrlTreeView_EndUpdate($hTreeView)

        ;        _TreeViewRemoveCheckbox($hTreeView, $hItem[$hRandomItem])
        ; Loop until user exits
        Do
        Until GUIGetMsg() = $GUI_EVENT_CLOSE
        GUIDelete()
EndFunc   ;==>_Main

Func _TreeViewRemoveCheckbox($hWnd, $hItem)
        $hItem = GUICtrlGetHandle($hItem)
        Local $Struct = DllStructCreate($tagTVITEMEX)
        DllStructSetData($Struct, 1, 0x8)
        DllStructSetData($Struct, 2, $hItem)
        DllStructSetData($Struct, 3, 0)
        DllStructSetData($Struct, 4, 0xF000)
        GUICtrlSendMsg($hWnd, 0x110D, 0, DllStructGetPtr($Struct))
EndFunc   ;==>_TreeViewRemoveCheckbox
[/au3]

本帖子中包含更多资源

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

×
 楼主| 发表于 2012-10-19 16:13:34 | 显示全部楼层
回复 3# netegg

高人啊,多谢!
DllStructSetData的那一段不懂,具体数值是什么意思?

请问有没有DellStruct的详细教程啊
发表于 2012-10-19 19:56:10 | 显示全部楼层
本帖最后由 netegg 于 2012-10-20 05:30 编辑

mask ----- $TVIF_STATE  0x8
statemask ----- $TVIS_STATEIMAGEMASK 0xf000
message ------ $TVM_SETITEM 0x110d
发表于 2014-11-17 17:07:58 | 显示全部楼层
感谢,学习了,非常感谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-18 12:43 , Processed in 0.070856 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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