I have two nodes, each have two child nodes, I expand the two nodes, and run this code:
m_tree.ItemRemove(m_htRoot1Node1, false, false);
m_tree.ItemRemove(m_htRoot1Node2, false, false);
m_tree.ItemHide(m_htRoot1, true, false);
m_tree.ItemRemove(m_htRoot2Node1, false, false);
m_tree.ItemRemove(m_htRoot2Node2, false, false);
m_tree.OnSwUpdateScrollBars();
m_tree.OnSwDoRedraw();
The application crash.
I am sending you also an application which demonstate this bug.
This is the location:
#ifdef _DEBUG
if( LPVOID(pNode) != LPVOID(m_pCellRoot) )
{
CExtTreeGridCellNode * pDebugTestNode = m_arrGridVis.GetAt( nVisibleOffset );
ASSERT_VALID( pDebugTestNode );
ASSERT( LPCVOID(pDebugTestNode) == LPCVOID(pNode) ); <== HERE!
} // if( LPVOID(pNode) == LPVOID(m_pCellRoot) )
#endif // _DEBUG
Please try to solve this ASAP, as we need this feature working.
Thanks,
Ron.