상태 이미지 인덱스를 사용하여 작업하는 방법
트리 뷰 컨트롤에서 상태 이미지 인덱스를 설정 및 검색 방법에 대해 혼동하는 경우가 많습니다. 다음 예제에서는 상태 이미지 인덱스를 설정 및 검색하기 위한 적절한 방법을 보여 줍니다. 이 예제에서는 트리 뷰 컨트롤에 선택되지 않은 상태와 선택된 상태의 이미지 인덱스가 두 개만 있다고 가정합니다. 애플리케이션에 둘 이상의 함수가 포함된 경우 해당 사례를 처리하도록 이러한 함수를 수정해야 합니다.
알아야 하는 작업
기술
필수 구성 요소
- C/C++
- Windows 사용자 인터페이스 프로그래밍
지침
트리 뷰 항목의 확인 상태 설정
다음 예제에서는 트리 뷰 항목의 확인 상태를 설정하는 방법을 보여 줍니다.
BOOL TreeView_SetCheckState(HWND hwndTreeView, HTREEITEM hItem, BOOL fCheck)
{
TVITEM tvItem;
tvItem.mask = TVIF_HANDLE | TVIF_STATE;
tvItem.hItem = hItem;
tvItem.stateMask = TVIS_STATEIMAGEMASK;
// Image 1 in the tree-view check box image list is the unchecked box.
// Image 2 is the checked box.
tvItem.state = INDEXTOSTATEIMAGEMASK((fCheck ? 2 : 1));
return TreeView_SetItem(hwndTreeView, &tvItem);
}
트리 뷰 항목의 확인 상태 검색
다음 예제에서는 트리 뷰 항목의 확인 상태를 검색하는 방법을 보여 줍니다.
BOOL TreeView_GetCheckState(HWND hwndTreeView, HTREEITEM hItem)
{
TVITEM tvItem;
// Prepare to receive the desired information.
tvItem.mask = TVIF_HANDLE | TVIF_STATE;
tvItem.hItem = hItem;
tvItem.stateMask = TVIS_STATEIMAGEMASK;
// Request the information.
TreeView_GetItem(hwndTreeView, &tvItem);
// Return zero if it's not checked, or nonzero otherwise.
return ((BOOL)(tvItem.state >> 12) - 1);
}
관련 항목