본문 바로가기
Study/MFC

CtreeCtrl의 사용법!!! 쉽게 쉽게~

by 뿡뿡대마왕 2011. 9. 28.
반응형

트리 컨트롤을 사용해야 할 일이 생겼다..
책을 보고 인터넷을 봐도 그냥 한눈에 딱 쉽게 들어오는 글이 보이지 안았다;; 이런

그래서 최대한 사용함에 있어 빨리 쉽게 사용할 수 있는데 초점을 맞춰 사용법을 적어본다...ㅋㅋㅋ
 
* 기준은 vs2008로 작성하엿다 *

 우선 mfc로 프로젝트를 만들고 나서 다이얼로그에다가 아래와 같이 트리 컨트롤을 추가 하였다.



그냥 기본으로 추가하면 위에 처럼 저런 모양으로는 나오지 않는다.
저렇게 모양이 나올려면 속성창에서 옵션을 조그만 조정해 주면된다. 난 아래와 같이 옵션을 주었다.
(각 옵션설정하는데를 선택하면 하단에 간단하게 설명이 나온다. 읽어보면 다 알수 있음)
 


 
그 다음에 트리 컨트롤에다가 마우스 우클릭으로 변수를 추가한다. 아래 처럼 말이다

 
아래 처럼 변수 이름 넣고 해서 트리컨트로를 의 변수를 만들었다.

 

그 다음에는 소스와 출력된 모습을 보자.. 이게 이해가 제일 빠를듯..  

 우선 소스는 아래와 같당

         HTREEITEM top = m_tree.InsertItem("동물", TVI_ROOT, TVI_LAST);

HTREEITEM do_1 = m_tree.InsertItem("고양이 1",  top, TVI_LAST);


m_tree.InsertItem("털많은고양이",  do_1, TVI_LAST);

m_tree.InsertItem("큰 고양이",  do_1, TVI_LAST);

HTREEITEM do_2 = m_tree.InsertItem("코끼리 ", top,TVI_LAST);

m_tree.InsertItem("검은 코끼리",  do_2, TVI_LAST);

m_tree.InsertItem("흰 코끼리",   do_2, TVI_LAST);

HTREEITEM do_3 = m_tree.InsertItem("강아지 1", 1, 1, top, TVI_LAST);

m_tree.InsertItem("못난 강아지", do_3, TVI_LAST);

m_tree.InsertItem("잘난 강아지", do_3, TVI_LAST);



 자 위에 처럼 하고 빌드하면 아래와 같이 쑝~~~!!!!


ㅋㅋㅋ....뭔가 참 쉽죠잉??
저 위에 코드와 아래처럼 나온걸 비교해 보면 함수에 들어가는 각인자의 정확한 의미는 몰라도 일단 빠르게 컨트롤을  
쉽득할 수 있죠..뭔가 감을 잡아야 진행이 나가는 거니까 저정도면 트리 컨트롤의 약간의 감이 올거라 생각됩니당^^

그렇다면 이번에는 위에서 사용된 함수에 대해서 함 볼까요??


HTREEITEM InsertItem(   UINT nMask,   LPCTSTR lpszItem,   int nImage,   int nSelectedImage,   UINT nState,   UINT nStateMask,   LPARAM lParam,   HTREEITEM hParent,   HTREEITEM hInsertAfter );

HTREEITEM InsertItem(   LPCTSTR lpszItem,   HTREEITEM hParent = TVI_ROOT,   HTREEITEM hInsertAfter = TVI_LAST );

HTREEITEM InsertItem(   LPCTSTR lpszItem,   int nImage,   int nSelectedImage,   HTREEITEM hParent = TVI_ROOT,   HTREEITEM hInsertAfter = VI_LAST);

이렇게 함수가 있는데 난 두번째 함수를 사용했다.  트리 컨트롤에 이미지도 넣을수 있는데 현재 난 그 부분은 다르지 않으므로 2번째 함수를 이용해서 위와 같이 간단하게 사용하였당 

아래에 들어가는 매크로에 대한 설명

         매크로
                                 설명
TVI_FIRST
제일 앞쪽에 추가
TVI_LAST
제일 뒤쪽에 추가
TVI_ROOT
루트 항목으로 추가
TVI_SORT
철자순으로 정렬이 되도록 추가

[출처] CTreeView|작성자 고물

 


이것으로 아주 간단하게 트리 컨트롤에 대해서 알아 보았다.
앞으로 더 작업해야 하는 부분이 많이 있으므로 더 추가되는 부분은 계속해서 블로그에 담도록 하겟당^^

참고로 트리컨트롤의 노드를 펼칠려면 아래와 같이
m_tree.Expand(top,TVE_EXPAND); //지정한 노드 펼치기
TVE_COLLAPSE 지정한 노드의 자식들을 숨긴다.
TVE_COLLAPSERESET지정한 노드의 자식들을 숨기고 모두 지워버린다.
TVE_EXPAND지정한 노드의 자식들을 확장시킨다.
TVE_TOGGLE지정한 노드의 확장/숨김을 토글한다.

이상 트리 컨트롤에 대해 간략히 알아봄^^~~



반응형

댓글