[MFC] 트리 컨트롤(Tree control ) 만들기...
먼저 테스트용 다이얼로그 프로젝트를 만들었다.
다이얼 로그에다가 추가하였다..
여기까지는 정말 쉽다.
그리고 컴파일을 하면 이렇게 된다.. 아직은 내용이 없기 때문에..
내용을 추가해보자..
트리컨트롤을 선택하고,
변수를 추가하자..
변수명만 적고 마침을 누른다...
그러면 헤더파일에 다음과 같은 변수가 추가된다..
root를 더블클릭하면 image가 나온다..
하지만.. 먼가 아무런 연결선이 없으니.. 어색하다..
트리 컨트롤의 속성창을 보자...
Has Buttons가 False로 되어있는데 True로 바꾸자..
Has Lines도 True로 바꾸고,
클릭하면 아래의 image가 나온다...
트리 컨트롤을 이용하면서 가장 유의해야 할 점은 트리 컨트롤은 아이템하나당
독립적이라기 보다는 상위 부모에 속하기 때문에, 추가나 삭제를 할 때 꼭 주의
해서 해야한다.
트리컨트롤에 값을 클릭하였을 때 그 처리를 해주고 싶으면,
컨트롤 이벤트에서 TVN_SELCHANGED 이벤트의 함수를 정의하고,
그 내부에서..
CString strItem = m_ctlTreeCtrl1.GetItemText(pNMTreeView->itemNew.hItem);
이렇게 사용하여 얻어 올 수 있다.
여러가지 항목을 묶어서 보려고 하니, 트리 컨트롤이 가장 적합해 보였다..
그래서 트리 컨트롤을 사용하기 위해 테스트를 해 보았다...
먼저 테스트용 다이얼로그 프로젝트를 만들었다.
그 후 트리 컨트롤을 선택하고,
다이얼 로그에다가 추가하였다..
여기까지는 정말 쉽다.
그리고 컴파일을 하면 이렇게 된다.. 아직은 내용이 없기 때문에..
내용을 추가해보자..
트리컨트롤을 선택하고,
변수를 추가하자..
변수명만 적고 마침을 누른다...
그러면 헤더파일에 다음과 같은 변수가 추가된다..
그리고 cpp의 OnInitDialog() 함수로 간다. 그 곳의 초기화 작업부분에...
HTREEITEM hRoot;
hRoot = m_ctlTreeControl.InsertItem(L"root", 0/* nImage */, 1/* nSelectedImage */, TVI_ROOT, TVI_LAST ) ;
HTREEITEM hChild;
hChild = m_ctlTreeControl.InsertItem(L"image", 1/* nImage */, 1/* nSelectedImage */, hRoot, TVI_LAST ) ;
소스를 추가한다.
그리고 컴파일을 다시 하면,
이렇게 root가 나와있고,
root를 더블클릭하면 image가 나온다..
하지만.. 먼가 아무런 연결선이 없으니.. 어색하다..
트리 컨트롤의 속성창을 보자...
Has Buttons가 False로 되어있는데 True로 바꾸자..
Has Lines도 True로 바꾸고,
Lines At Root도 True로 바꾼다..
그리고 컴파일을 하면,
이렇게 + 와 선도 생기고,
클릭하면 아래의 image가 나온다...
트리 컨트롤을 이용하면서 가장 유의해야 할 점은 트리 컨트롤은 아이템하나당
독립적이라기 보다는 상위 부모에 속하기 때문에, 추가나 삭제를 할 때 꼭 주의
해서 해야한다.
트리컨트롤에 값을 클릭하였을 때 그 처리를 해주고 싶으면,
컨트롤 이벤트에서 TVN_SELCHANGED 이벤트의 함수를 정의하고,
그 내부에서..
CString strItem = m_ctlTreeCtrl1.GetItemText(pNMTreeView->itemNew.hItem);
이렇게 사용하여 얻어 올 수 있다.
'프로그래밍 > MFC' 카테고리의 다른 글
[MFC] CFileDialog, 파일 다이얼로그 사용법... (1) | 2011.10.18 |
---|---|
[MFC] Picture control 사용하기... (5) | 2011.10.15 |
[MFC] 콤보박스의 아이템(항목)이 보이지 않을 때! (2) | 2011.09.27 |
[MFC] 메인프레임을 얻어와서 View에 접근하기. (0) | 2011.09.23 |
[MFC] mfc로 툴만들기( 탭 컨트롤 ) - 2 (2) | 2011.09.21 |