다음을 통해 공유


트리 컨트롤 항목 상태 개요

트리 컨트롤(CTreeCtrl)의 각 항목에는 현재 상태가 있습니다. 예를 들어 항목을 선택, 비활성화, 확장 등을 수행할 수 있습니다. 대부분의 경우 트리 컨트롤은 항목 선택과 같은 사용자 작업을 반영하도록 항목의 상태를 자동으로 설정합니다. 그러나 SetItemState 멤버 함수를 사용하여 항목의 상태를 설정하고 GetItemState 멤버 함수를 사용하여 항목의 현재 상태를 검색할 수도 있습니다. 항목 상태의 전체 목록은 Windows SDK의 트리 뷰 컨트롤 상수를 참조하세요.

항목의 현재 상태는 nState 매개 변수에 의해 지정됩니다. 트리 컨트롤은 항목 선택 또는 항목에 포커스 설정과 같은 사용자 작업을 반영하도록 항목의 상태를 변경할 수 있습니다. 또한 애플리케이션은 항목의 상태를 변경하여 항목을 사용하지 않도록 설정 또는 숨기거나 오버레이 이미지 또는 상태 이미지를 지정할 수 있습니다.

항목의 상태를 지정하거나 변경할 때 nStateMask 매개 변수는 설정할 상태 비트를 지정하고 nState 매개 변수에는 해당 비트에 대한 새 값이 포함됩니다. 예를 들어 다음 예제에서는 개체m_treeCtrl()의 부모 항목(hParentItem으로 지정됨)CTreeCtrl의 현재 상태를 다음으로 TVIS_EXPANDPARTIAL변경합니다.

TVITEM curItem;
HTREEITEM hParentItem;

hParentItem = m_TreeCtrl.GetSelectedItem();

//modify the parent item to keep the '+' sign
curItem.mask = TVIF_STATE | TVIF_HANDLE;
curItem.hItem = hParentItem;
curItem.state = TVIS_EXPANDPARTIAL;
curItem.stateMask = TVIS_EXPANDPARTIAL;
m_TreeCtrl.SetItem(&curItem);

상태를 변경하는 또 다른 예는 항목의 오버레이 이미지를 설정하는 것입니다. 이렇게 하려면 nStateMask에 값이 포함되어 TVIS_OVERLAYMASK 야 하며 nState는 INDEXTOOVERLAYMASK 매크로를 사용하여 왼쪽 8비트 이동된 오버레이 이미지의 1부터 시작하는 인덱스를 포함해야 합니다. 인덱스가 0이면 오버레이 이미지를 지정하지 않습니다. 오버레이 이미지는 CImageList::SetOverlayImage 함수에 대한 이전 호출에 의해 트리 컨트롤의 오버레이 이미지 목록에 추가되어야 합니다. 함수는 추가할 이미지의 1부터 시작하는 인덱스를 지정합니다. INDEXTOOVERLAYMASK 매크로와 함께 사용되는 인덱스입니다. 트리 컨트롤에는 최대 4개의 오버레이 이미지가 있을 수 있습니다.

항목의 상태 이미지를 설정하려면 nStateMask에 값이 포함되어 TVIS_STATEIMAGEMASK 야 하며 nState는 INDEXTOSTATEIMAGEMASK 매크로를 사용하여 왼쪽 12비트 이동된 상태 이미지의 1부터 시작하는 인덱스를 포함해야 합니다. 상태 이미지를 지정하지 않는 인덱스가 0일 수 있습니다. 오버레이 및 상태 이미지에 대한 자세한 내용은 트리 컨트롤 이미지 목록을 참조 하세요.

참고 항목

CTreeCtrl 사용
컨트롤