다음을 통해 공유


작업 영역에서 목록 컨트롤을 구현 합니다.

기본적으로 목록 컨트롤 눈금을 표준 방식으로 모든 항목을 정렬합니다.그러나 작업 영역 이라는 사각형 모양의 그룹으로 목록 항목을 정렬 하는 또 다른 방법은 지원 되지.이미지로 작업 영역을 구현 하는 목록 컨트롤을 사용 하 여 목록 뷰 컨트롤에 참조를 Windows SDK.

[!참고]

목록 컨트롤 아이콘 또는 작은 아이콘 모드에서 경우에 작업 영역을 볼 수 있습니다.그러나 뷰가 보고서 나 목록 모드로 전환 되는 경우 현재 작업 영역은 유지 됩니다.

하나도 없을 때 표시 되는 가로 스크롤 막대 (의 왼쪽, 위쪽 또는 오른쪽 항목 중에서), 빈 테두리를 표시 하거나 작업 영역을 사용할 수 있습니다.또 다른 일반적인 용도 항목 이동 하거나 삭제할 수 있는 여러 작업 영역을 만드는 것입니다.이 방법을 사용 하면 단일 보기에서 다른 의미를 갖는 영역을 만들 수 있습니다.다음 사용자는 다른 영역에 배치 하 여 항목을 분류할 수 있습니다.보기 영역 파일 읽기/쓰기 및 읽기 전용 파일에 대 한 다른 영역에 있는 파일 시스템의이 예로 들 수 있습니다.파일 항목을 읽기 전용 영역으로 이동 되 면이 자동으로 읽기 전용입니다.읽기 전용 영역에서 파일을 읽기/쓰기 영역으로 이동 읽기/쓰기 상태가 됩니다.

CListCtrl만들기 및 관리 작업 영역에서 목록 컨트롤에 대 한 몇 가지 멤버 함수를 제공 합니다.GetWorkAreasSetWorkAreas 집합의 배열을 검색 하 고 CRect 개체 (또는 RECT 구조), 현재 구현 된 목록 컨트롤에 대 한 작업 영역에 저장할.또한 GetNumberOfWorkAreas 는 현재 작업 영역은 목록 컨트롤에 대 한 검색 (기본적으로 0).

항목 및 작업 영역

작업 영역이 만들어지면 항목 작업 영역 내에 있는 멤버가 됩니다.마찬가지로 항목이 어떤 작업 영역으로 이동 되 면 이동 된 작업 영역 구성원이 됩니다.항목이 어떤 작업 영역에 놓여 있지 않은 경우 자동으로 첫째 (인덱스 0) 작업 영역 구성원이 됩니다.특정 작업 영역 내에 배치 된 항목 있고 원하는 경우 항목을 만들고 원하는 작업 영역에 대 한 호출로 이동 해야 합니다 SetItemPosition.아래의 두 번째 예제는이 기술을 보여 줍니다.

다음 예제에서는 네 가지 작업 영역이 구현 (rcWorkAreas), 목록 컨트롤에서 각 작업 영역을 10 픽셀 너비 테두리와 같은 크기로 (m_WorkAreaListCtrl).

CSize size;
size = m_WorkAreaListCtrl.ApproximateViewRect(); 
size.cx += 100;
size.cy += 100;

CRect rcWorkAreas[4];
rcWorkAreas[0].SetRect(0, 0, (size.cx/2) - 5, (size.cy/2) - 5);
rcWorkAreas[1].SetRect((size.cx/2) + 5, 0, size.cx, (size.cy/2) - 5);
rcWorkAreas[2].SetRect(0, (size.cy/2) + 5, (size.cx/2) - 5, size.cy);
rcWorkAreas[3].SetRect((size.cx/2) + 5, (size.cy/2) + 5, size.cx, size.cy);

//set work areas
m_WorkAreaListCtrl.SetWorkAreas(4, rcWorkAreas);    

호출을 ApproximateViewRect 지역에서 모든 항목을 표시 하는 데 필요한 전체 영역의 추정 하려고 했습니다.이 예상 다음 네 개의 영역으로 나뉘어 이며 5 픽셀 너비의 테두리로 채웁니다.

다음 예제에서는 기존 목록 항목을 각 그룹에 할당 (rcWorkAreas) 및 컨트롤 뷰를 새로 고칩니다 (m_WorkAreaListCtrl) 효과 완료 합니다.

// set insertion points for each work area
CPoint rgptWork[4];
for (int i = 0; i < 4; i++)
{
    rgptWork[i].x = rcWorkAreas[i].left + 10;
    rgptWork[i].y = rcWorkAreas[i].top + 10;
}
// now move all the items to the different quadrants
for (int i = 0; i < 20; i++)
{
    m_WorkAreaListCtrl.SetItemPosition(i, rgptWork[i % 4]);
}

// force the control to rearrange the shuffled items
m_WorkAreaListCtrl.Arrange(LVA_DEFAULT);

참고 항목

참조

CListCtrl 사용

개념

컨트롤 (MFC)