TreeView对象选择某节点下所有节点与子节点

//////////////////////////////////////////////////////////////////////////////
//
// 函数: of_deselectall
//
// 属性: public   
//
// 参数: long al_handle
//
// 返回: integer
//
// 功能:
// 如果是子节点,选择本级节点下的所有子节点~
//
//////////////////////////////////////////////////////////////////////////////

//声明
long            ll_hdl[]
long            ll_parent
long            ll_handle
integer         li_cnt
boolean         lb_result
treeviewitem    lt_tvi
string          label


li_cnt = 1
ll_hdl[1] = al_handle
if GetItem(ll_hdl[li_cnt], lt_tvi) = -1 then return -1
if not lt_tvi.children then
 return 1
end if 

do while li_cnt > 0
   if GetItem(ll_hdl[li_cnt], lt_tvi) = -1 then return -1
 
 //代码 
 //写判断

 
 if lt_tvi.children then
  li_cnt ++
  ll_hdl[li_cnt] = FindItem(ChildTreeItem!, ll_hdl[li_cnt - 1])
 else
    ll_hdl[li_cnt] = FindItem(NextTreeItem!, ll_hdl[li_cnt])
 end if 
 
 do while ll_hdl[li_cnt] <= 0
  li_cnt --
    if li_cnt = 0 then exit
    ll_hdl[li_cnt] = FindItem(NextTreeItem!, ll_hdl[li_cnt])
  
    if ll_hdl[li_cnt] = -1 then CONTINUE
  
    lb_result = false
    ll_handle = ll_hdl[li_cnt]
    ll_parent = FindItem(ParentTreeItem!,ll_handle)
    DO UNTIL ll_parent = FindItem(RootTreeItem!, 0)
   if al_handle = ll_parent then
    lb_result = true
   end if 
   ll_handle = ll_parent
   ll_parent = FindItem(ParentTreeItem!,ll_handle)
  loop  
  
  if lb_result = true then
   CONTINUE
    else
   li_cnt = 0
   exit
  end if
 loop 
loop

return 0

原文地址:https://www.cnblogs.com/PBDragon/p/2395627.html