트리 컨트롤에 데이터를 집어 넣고 처음 보여줄때 ' 쫘악!!~~' 펴진 상태로 보여주고 싶을때가 있을것이다!!
자식 노드에 자식 노드 그리고 또 자식노드..이런건 프로그램을 해본 사람이라면 간단학 재귀함수를 이용해서 처리 할 수 있을것이다.
난 완전하게 재귀 함수를 사용해서 나타내지 않고 아래 정도만 주욱 펼쳐내는 코드를 작성해 볼 것이다.
이것을 보고 재귀함수를 이용해서 자식노드의 자식노드..그리고 또 자식노드까지 접근할 수 있는 코드를 쉽게 응용할 수 있을거라 생각한다. ㅡ,.ㅡ;; .. 절대 귀찮아서 안만드는 것이다 아니다!! ㅋㅋ
보여 주고 싶은 것이다!!!
저번에 포스팅에서 펼쳐지는 함수는 Expand함수 였다..ㅋㅋ
자 그럼 위에처럼 펼치는 소스를 한번 간단하게 봐볼까나?
HTREEITEM parent, child;
parent = m_privacyTree.GetRootItem(); //최상위 노드의 핸들 가져온다.
m_privacyTree.Expand(parent,TVE_EXPAND); // 최상위놈을 쫘악 펼치고!!
child = m_privacyTree.GetNextItem(parent, TVGN_CHILD); // 첫번째 자식 노드의 핸들을 가져온다. // TVGN_CHILD는 첫번째 자식 노드를 가져온다.
m_privacyTree.Expand(child,TVE_EXPAND); // 첫번째로 가져온놈 쫘악 펼치고!
while(child != NULL) // 자..더이상 자식 노드가 없을때까지 돌린다.
{
child = m_privacyTree.GetNextItem(child, TVGN_NEXT); // 다음 노드를 가져온다.
m_privacyTree.Expand(child,TVE_EXPAND); // 가져온 노드를 주욱 핀다!!
}
위에 소스를 보면 참 간단하다..저정도를 이해 한다면 쉽게 재귀 함수를 써서 자식노드의 자식노드까지 모두 접근이 가능할것이다.
물론 자식노드가 존재 하는지 않하는지 정도의 함수는 충분히 찾으리라고 생각된다.
------------
ItemHasChildren 함수 였던거 같은데.;..이걸로 자식노드 있는지 확인해 돌리면 될것이다~ㅋㅋ 공부합시다!;
[출처] CTreeCtrl 의 모든 item 값 출력|ㅇㄹㅇㄹ작성자 네이밍
'Study > MFC' 카테고리의 다른 글
hWnd=0x00000000 .. 컨트롤 추가하고 다음과 같은 현상이? (0) | 2011.09.29 |
---|---|
CtreeCtrl에서 SetCheck함수가 동작하지 않는현상! 체크박스가 선택되지 않을때 (0) | 2011.09.29 |
CtreeCtrl 아이템 높이 조절하기! Ctree Height 조절 (0) | 2011.09.28 |
CtreeCtrl의 사용법!!! 쉽게 쉽게~ (0) | 2011.09.28 |
프로그램 실행시 메인 다이얼로그 숨기기 (0) | 2011.09.28 |
댓글