私の 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();
}