In my programming, I have often had to derive the last item in a branch.
In fact some of the other topics I cover, uses this function to get the
last item in the branch.
// GetLastItem – Gets last item in the branch
// Returns – Last item
// hItem – Node identifying the branch. NULL will
// return the last item in outine
HTREEITEM CTreeCtrlX::GetLastItem( HTREEITEM hItem )
{
// Last child of the last child of the last child …
HTREEITEM htiNext;if( hItem == NULL ){
// Get the last item at the top level
htiNext = GetRootItem();
while( htiNext ){
hItem = htiNext;
htiNext = GetNextSiblingItem( htiNext );
}
}while( ItemHasChildren( hItem ) ){
htiNext = GetChildItem( hItem );
while( htiNext ){
hItem = htiNext;
htiNext = GetNextSiblingItem( htiNext );
}
}return hItem;
}