Program Language/API | MFC
[MFC] TreeCtrl Node 모두 확장하기
야곰야곰+책벌레
2021. 11. 23. 09:30
728x90
반응형
CTreeCtrl을 사용하여 아이템을 추가한 경우, 모두 닫혀 있게 되는데 매번 모두 여는 작업은 귀찮을 수 있다. 이를 위해서 한꺼번에 확장하는 함수를 만들어서 사용하게 된다.
우선 ITEM의 확장을 위해서는 간단하게 아래와 같이 만들 수 있다. ( 예는 Subclassing 한 경우다.)
void CMxTreeCtrl::ExpandTree(HTREEITEM hItem)
{
if (this->ItemHasChildren(hItem))
{
Expand(hItem, TVE_EXPAND);
HTREEITEM hChild = GetChildItem(hItem);
if (hChild)
{
do
{
ExpandTree(hChild);
} while (hChild = GetNextSiblingItem(hChild));
}
}
}
상위 Item을 넣으면 Child가 있는지 확인하고 계속해서 찾아 내려가는(재귀 호출) 함수다.
이때 변수에 ROOT 핸들을 넘겨주면 한꺼번에 열수 있다.
void CMxTreeCtrl::ExpandAll()
{
ExpandTree(GetRootItem());
}
외부에서는 ExpandAll() 함수만 호출하면 된다.
728x90
반응형