The MASM Forum
General => The Campus => Topic started by: 5k3l3t0r on June 09, 2012, 04:48:37 AM
-
hi all,
someone have(or could point me in the right direction) a function to search a treeview recursively?
what to search isn't important i just need to go throw all items and sub items...
tkx in advance
5k3l3t0r
-
5k3l3t0r,
This is an example that Tedd posted in the old forum. I have used it to design other more complex applications, its simple and clearly coded and should be useful to do what you want.
-
hi hutch,
thank you very much for your time...
i have solved the problem last night...
SearchTreeItem proc searchBy:DWORD,pParam:DWORD,startItem:DWORD
local hItem:HTREEITEM
local hItemChild:HTREEITEM
local hItmFound:HTREEITEM
local itm:TV_ITEM
push startItem
pop hItem
.while hItem != NULL
push hItem
pop itm.hItem
push TVIF_PARAM + TVIF_CHILDREN
pop itm._mask
invoke SendMessage,hWdTree,TVM_GETITEM,0,addr itm
mov eax,pParam
.if itm.lParam == eax
mov eax,hItem
ret
.elseif itm.cChildren == TRUE
invoke SendMessage,hWdTree,TVM_GETNEXTITEM,TVGN_CHILD,hItem
mov hItemChild,eax
invoke SearchTreeItem,NULL,pParam,hItemChild
mov hItmFound,eax
.if hItmFound != NULL
mov eax,hItmFound
ret
.endif
.endif
invoke SendMessage,hWdTree,TVM_GETNEXTITEM,TVGN_NEXT,hItem
mov hItem,eax
inc itmcnt
.endw
xor eax,eax
ret
SearchTreeItem endp
searchBy isn't yet implemented but is easy to guess...
tkx and bye
5k3l3t0r
-
Looks good :t
Check if
invoke SearchTreeItem,NULL,pParam,hItemChild
mov hItmFound,eax
.if hItmFound != NULL
mov eax,hItmFound
ret
.endifcould be replaced by
invoke SearchTreeItem,NULL,pParam,hItemChild
mov hItmFound,eax
.if eax
ret
.endif