2017-09-26 29 views
1

我在我的對話框中有簡單的CTreeCtrl。它只有兩個層次的深度,這樣的事情:如何在調用SelectItem函數時強制CTreeCtrl不滾動到該項目?

Simple tree. Before selection

試想一下,用戶點擊「三」節點,使其成爲選中,那麼他推的按鈕,這也是對話和執行上下面的代碼:

Simple tree. After selection

// m_tree is a dialog-based class member of CTreeCtrl type 
HTREEITEM hItem = m_tree.GetSelectedItem(); 
if (hItem) 
{ 
    hItem = m_tree.GetNextSiblingItem(hItem); 
    if (hItem) 
    { 
     m_tree.SelectItem(hItem); 
    } 
} 

即如果hItem,它的標籤是「第四」我的樣品後,在樹控件窗口的底部變得可見

如何強制樹形控件不滾動到所選項目?我只是想選擇它而已。

+1

您可以嘗試在先前選擇的項目上調用https://msdn.microsoft.com/en-us/library/tcee049y.aspx EnsureVisible。這可能會閃爍,所以你可以嘗試使用SetRedraw(FASLE),然後再進行新的選擇和EnsureVisible。 – VuVirt

+0

@VuVirt嘿,我很驚訝,但它似乎工作 – brightside90

回答

2

您可以嘗試在先前選擇的項目上調用EnsureVisible。這可能會閃爍,所以你可以嘗試使用SetRedraw(FASLE),然後再進行新的選擇和EnsureVisible。

相關問題