在我的 CTreeCtrl 中,当我展开一个不可见的节点时,控件会自动重新定位树以使展开的节点可见。有什么办法可以防止这种行为?
用例:我有一棵树,它从远程源异步加载项目,并且可能正在构建树的“底部”很长一段时间,目前在完成时跳转到每个节点的树行为非常分散注意力用户。
当前解决方法:
/******************************************************************************
Expand an item while retaining the tree position
******************************************************************************/
void CFileOpenTreeView::ExpandWithoutJumping(HTREEITEM hItem)
{
// This still flickers for some reason, but at least it doesn't jump
LockWindowUpdate();
HTREEITEM hFirstVisible = GetTreeCtrl().GetFirstVisibleItem();
GetTreeCtrl().Expand(hItem, TVE_EXPAND);
GetTreeCtrl().SelectSetFirstVisible(hFirstVisible);
UnlockWindowUpdate();
Invalidate();
}