如何使CTreeCtrl项目集中显示?

我知道函数EnsureVisible(HTREEITEM hItem)可以通过滚动CTreeCtrl的栏来显示hItem 。 但是有时候hItem会显示在控件的顶部或旁边,这对用户来说是非常不友好的。 我想要在控件中间显示该项目。 任何好的解决scheme

你将不得不手动滚动CTreeCtrl 。 调用CTreeCtrl::EnsureVisible()使项目可见,然后调用CTreeCtrl::GetItemRect()检索项目的当前坐标,然后调用CWnd::ScrollWindow/Ex()指定必要的偏移量以将项目放在任何位置它。