트리뷰(김정학)

Download Report

Transcript 트리뷰(김정학)


트리뷰
› 스타일
› 메시지
› 통지메시지
› 관련 구조체
 TVINSERTSTRUCT 설명
› 코드의 예
› 흐름
› 실습

계층적인 구조를 가지는 자료를 표시

범위를 좁혀가며 검색할 수 있어 쉽게 원하는 정
보를 찾을 수 있음
스타일
설명
TVS_HASBUTTONS
자식 항목을 가진 부모 항목 옆에 +, -를 표시
TVS_HASLINES
점선으로 항목간을 연결하여 표시
TVS_LINESATROOT
루트 항목끼리 선으로 연결
TVS_EDITLABELS
항목의 텍스트를 직접 수정 가능하게 함
TVS_CHECKBOXES
항목 옆에 체크 박스를 보여줌
TVS_TRACKSELECT
항목 위에 마우스 커서가 있으면 항목을 파란색
밑줄을 그어 선택 후보임을 표시
TVS_SINGLEEXPAND
한 번 클릭으로 항목을 선택함과 동시에 확장하
고 비선택된 항목은 자동으로 축소
메시지
설명
TVM_SETIMAGELIST
트리 컨트롤과 연결될 이미지 리스트를 지정
TVM_DELETEITEM
lParam으로 지정한 항목을 삭제
TVM_INSERTITEM
항목을 추가
메시지
설명
TVN_BEGINDRAG
왼쪽 마우스 버튼으로 항목을 드래그 하기 시작
할 때 발생
TVN_BEGINLABELEDIT
레이블을 편집할 때 발생
TVN_BEGINRDRAG
오른쪽 마우스 버튼으로 항목을 드래그하기 시
작할 때 발생
TVN_DELETEITEM
한 항목이 삭제될 때 발생
TVN_ENDLABELEDIT
레이블 편집이 완료되었을 때 발생
TVN_ITEMEXPANDED
트리가 확장 또는 축소되었을 때 발생
TVN_ITEMEXPANDING
트리가 확장 또는 축소될 때 발생
TVN_KEYDOWN
키보드 입력이 있을 때 발생

Typedef struct tag TVINSERTSTRUCT
{
HTREEITEM hParent;
HTREEITEM hInsertAfter;
TVITEMEX itemex;
}

HTREEITEM hParent;
› 항목의 부모 항목을 지정
› 추가되는 항목은 hParent항목의 자식 항목이 됨

HTREEITEM hInsertAfter;
› 같은 레벨의 항목 중 어느 위치에 추가할 것인가
를 지정
값
설명
TVI_FIRST
제일 첫 위치
TVI_LAST
마지막 위치
TVI_SORT
정렬한 위치
t.hParent = 0;
t.hInsertAfter = TVI_LAST;
t.item.mask = TVIF_TEXT;
t.item.pszText = "주소록";
Post = (HTREEITEM)SendMessage(GetDlgItem(hDlg, IDC_TREE1),
TVM_INSERTITEM, 0, (LPARAM)&t);
삽입
핸들 리턴
성남시
부모로 지정
삽입
핸들 리턴
분당구
부모로 지정
삽입
야탑동
Thank you