Dev/C, C++

CTreeCtrl에서 ItemData 찾기 (자식노드 포함)

newtype 2003. 7. 18. 17:25
//-------------------------------------------------------------------------------------//
// Function         : FindTreeData
// Parameter        : HTREEITEM hItem, DWORD dwData
// Return           : HTREEITEM
// Note             : hItem이하 모든 모든 노드에서 dwData를 찾는다.
//-------------------------------------------------------------------------------------//
HTREEITEM FindTreeData(CTreeCtrl* pTree, HTREEITEM hItem, DWORD dwData)
{
       HTREEITEM hitemFind, hItemChile, hItemSibling;
       hitemFind = hItemChile = hItemSibling = NULL;


       if ( pTree->GetItemData( hItem ) == dwData )
       {
               hitemFind = hItem;
       }
       else
       {
               // 자식 노드를 찾는다.
               hItemChile = pTree->GetChildItem( hItem );
               if ( hItemChile )
               {
                       hitemFind = FindTreeData( pTree, hItemChile, dwData );

               }

               // 형제노드를 찾는다.
               hItemSibling = pTree->GetNextSiblingItem( hItem );
               if ( hitemFind==NULL && hItemSibling )
               {
                       hitemFind = FindTreeData( pTree, hItemSibling, dwData );
               }
       }
   
       return hitemFind;
}

반응형