//-------------------------------------------------------------------------------------//
// 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;
}
// 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;
}
훌륭한 코드입니다.
잘 활용하겠습니다.