2017-09-26 1 views
1

대화 상자에 간단한 CTreeCtrl이 있습니다.SelectItem 함수가 호출 될 때 CTreeCtrl이 항목으로 스크롤하지 않게하는 방법은 무엇입니까?

Simple tree. Before selection

는 사용자가 선택된다, 그래서 "세 번째"노드, 그는 대화와이 실행에 있습니다 버튼을 눌러 클릭 상상해 : 그것은 깊이의 두 가지 수준이 같은 뭔가가 다음 코드 :

Simple tree. After selection

: 내 샘플에서 "넷째"입니다 라벨이 hItem, 후

// 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); 
    } 
} 

는 트리 컨트롤 창 하단에 표시된다

어떻게 트리 컨트롤이 선택한 항목까지 스크롤하지 않도록 할 수 있습니까? 나는 그것을 선택하기 만하면됩니다.

+1

이전에 선택한 항목에서 https://msdn.microsoft.com/en-us/library/tcee049y.aspx EnsureVisible을 호출 해보십시오. 이렇게하면 깜박일 수 있으므로 새 선택 및 EnsureVisible을 만들기 전에 SetRedraw (FASLE)를 사용해보십시오. – VuVirt

+0

@VuVirt ㅎ, 놀랍지 만 작동하는 것 같습니다. – brightside90

답변

2

이전에 선택한 항목에서 EnsureVisible으로 전화를 걸 수 있습니다. 이렇게하면 깜박일 수 있으므로 새 선택 및 EnsureVisible을 만들기 전에 SetRedraw (FASLE)를 사용해보십시오.

관련 문제