다음을 통해 공유


CMFCListCtrl 수업

클래스는 CMFCListCtrl 클래스CListCtrl 고급 헤더 컨트롤 기능을 지원하여 클래스 클래스의 기능을 확장합니다CMFCHeaderCtrl.

구문

class CMFCListCtrl : public CListCtrl

멤버

공용 메서드

이름 설명
CMFCListCtrl::EnableMarkSortedColumn 정렬된 열을 다른 배경색으로 표시할 수 있습니다.
CMFCListCtrl::EnableMultipleSort 여러 정렬 모드를 사용하도록 설정합니다.
CMFCListCtrl::GetHeaderCtrl 밑줄이 그은 헤더 컨트롤에 대한 참조를 반환합니다.
CMFCListCtrl::IsMultipleSort 목록 컨트롤이 여러 정렬 모드인지 확인합니다.
CMFCListCtrl::OnCompareItems 두 개의 목록 컨트롤 항목을 비교해야 하는 경우 프레임워크에서 호출됩니다.
CMFCListCtrl::OnGetCellBkColor 개별 셀의 배경색을 결정해야 하는 경우 프레임워크에서 호출됩니다.
CMFCListCtrl::OnGetCellFont 그려지는 셀의 글꼴을 가져와야 하는 경우 프레임워크에서 호출됩니다.
CMFCListCtrl::OnGetCellTextColor 개별 셀의 텍스트 색을 결정해야 하는 경우 프레임워크에서 호출됩니다.
CMFCListCtrl::RemoveSortColumn 정렬된 열 목록에서 정렬 열을 제거합니다.
CMFCListCtrl::SetSortColumn 현재 정렬된 열과 정렬 순서를 설정합니다.
CMFCListCtrl::Sort 목록 컨트롤을 정렬합니다.

설명

CMFCListCtrl는 클래스 클래스에 CListCtrl 대한 두 가지 향상된 기능을 제공합니다. 먼저 머리글에 정렬 화살표를 자동으로 그려 열 정렬이 사용 가능한 옵션임을 나타냅니다. 둘째, 여러 열에서 동시에 데이터 정렬을 지원합니다.

예시

다음 예제에서는 CMFCListCtrl 클래스에서 다양한 메서드를 사용하는 방법을 보여 줍니다. 이 예제에서는 목록 컨트롤을 만들고, 열을 삽입하고, 항목을 삽입하고, 항목의 텍스트를 설정하고, 목록 컨트롤의 글꼴을 설정하는 방법을 보여 줍니다. 이 코드 조각은 Visual Studio 데모 샘플일부입니다.

CMFCListCtrl m_wndWatch;
// DWORD dwStyle
// CRect rectDummy
m_wndWatch.Create(dwStyle, rectDummy, this, ID_LIST_1);
m_wndWatch.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
m_wndWatch.InsertColumn(0, _T("Variable"), LVCFMT_LEFT, 100);
m_wndWatch.InsertColumn(1, _T("Value"), LVCFMT_LEFT, 100);

m_wndWatch.InsertItem(0, _T("m_nCount"));
m_wndWatch.SetItemText(0, 1, _T("100"));

m_wndWatch.SetFont(&m_Font);

상속 계층 구조

CObject

CCmdTarget

CWnd

CListCtrl

CMFCListCtrl

요구 사항

머리글: afxlistctrl.h

CMFCListCtrl::EnableMarkSortedColumn

정렬된 열을 다른 배경색으로 표시합니다.

void EnableMarkSortedColumn(
    BOOL bMark = TRUE,
    BOOL bRedraw = TRUE);

매개 변수

bMark
[in] 다른 배경색을 사용할지 여부를 결정하는 부울 매개 변수입니다.

bRedraw
[in] 컨트롤을 즉시 다시 그릴지 여부를 결정하는 부울 매개 변수입니다.

설명

EnableMarkSortedColumn 는 이 메서드 CDrawingManager::PixelAlpha 를 사용하여 정렬된 열에 사용할 색을 계산합니다. 선택한 색은 일반 배경색을 기반으로 합니다.

CMFCListCtrl::EnableMultipleSort

목록 컨트롤의 데이터 행을 여러 열로 정렬할 수 있습니다.

void EnableMultipleSort(BOOL bEnable = TRUE);

매개 변수

bEnable
[in] 여러 열 정렬 모드를 사용할지 여부를 지정하는 부울입니다.

설명

여러 열을 기준으로 정렬을 사용하도록 설정하면 열에 계층 구조가 있습니다. 데이터 행은 먼저 기본 열을 기준으로 정렬됩니다. 그런 다음, 해당하는 값은 우선 순위에 따라 각 후속 열별로 정렬됩니다.

CMFCListCtrl::GetHeaderCtrl

헤더 컨트롤에 대한 참조를 반환합니다.

virtual CMFCHeaderCtrl& GetHeaderCtrl();

Return Value

기본 개체에 대한 참조입니다 CMFCHeaderCtrl .

설명

목록 컨트롤의 머리글 컨트롤은 열의 제목이 들어 있는 창입니다. 일반적으로 열 바로 위에 배치됩니다.

CMFCListCtrl::IsMultipleSort

목록 컨트롤이 현재 여러 열에서 정렬을 지원하는지 여부를 확인합니다.

BOOL IsMultipleSort() const;

Return Value

TRUE 목록 컨트롤이 여러 정렬을 지원하는 경우 FALSE 그렇지 않으면.

설명

클래스CMFCListCtrl 여러 정렬을 지원하는 경우 사용자는 목록 컨트롤의 데이터를 여러 열로 정렬할 수 있습니다. 여러 정렬을 사용하도록 설정하려면 .를 호출 CMFCListCtrl::EnableMultipleSort합니다.

CMFCListCtrl::OnCompareItems

프레임워크는 두 항목을 비교할 때 이 메서드를 호출합니다.

virtual int OnCompareItems(
    LPARAM lParam1,
    LPARAM lParam2,
    int iColumn);

매개 변수

lParam1
[in] 비교할 첫 번째 항목입니다.

lParam2
[in] 비교할 두 번째 항목입니다.

iColumn
[in] 이 메서드가 정렬하는 열의 인덱스입니다.

Return Value

두 항목의 상대 위치를 나타내는 정수입니다. 음수 값은 첫 번째 항목이 두 번째 항목 앞에 와야 하며 양수 값은 첫 번째 항목이 두 번째 항목을 따라야 하며 0은 두 항목이 동일하다는 것을 의미합니다.

설명

기본 구현은 항상 0을 반환합니다. 고유한 정렬 알고리즘을 제공하도록 이 함수를 재정의합니다.

CMFCListCtrl::OnGetCellBkColor

프레임워크는 개별 셀의 배경색을 결정해야 하는 경우 이 메서드를 호출합니다.

virtual COLORREF OnGetCellBkColor(
    int nRow,
    int nColumn);

매개 변수

nRow
[in] 해당 셀의 행입니다.

nColumn
[in] 해당 셀의 열입니다.

Return Value

COLOREF 셀의 배경색을 지정하는 값입니다.

설명

기본 구현은 OnGetCellBkColor 제공된 입력 매개 변수를 사용하지 않고 단순히 호출 GetBkColor합니다. 따라서 기본적으로 전체 목록 컨트롤의 배경색은 동일합니다. 파생 클래스에서 재정 OnGetCellBkColor 의하여 개별 셀을 별도의 배경색으로 표시할 수 있습니다.

CMFCListCtrl::OnGetCellFont

프레임워크는 개별 셀의 글꼴을 가져올 때 이 메서드를 호출합니다.

virtual HFONT OnGetCellFont(
    int nRow,
    int nColumn,
    DWORD dwData = 0);

매개 변수

nRow
[in] 해당 셀의 행입니다.

nColumn
[in] 해당 셀의 열입니다.

dwData
[in] 사용자 정의 데이터입니다. 기본 구현에서는 이 매개 변수를 사용하지 않습니다.

Return Value

현재 셀에 사용되는 글꼴에 대한 핸들입니다.

설명

기본적으로 이 메서드 NULL는 . 목록 컨트롤의 모든 셀에는 동일한 글꼴이 있습니다. 다른 셀에 대해 다른 글꼴을 제공하려면 이 메서드를 재정의합니다.

CMFCListCtrl::OnGetCellTextColor

프레임워크는 개별 셀의 텍스트 색을 결정해야 하는 경우 이 메서드를 호출합니다.

virtual COLORREF OnGetCellTextColor(
    int nRow,
    int nColumn);

매개 변수

nRow
[in] 해당 셀의 행입니다.

nColumn
[in] 해당 셀의 열입니다.

Return Value

COLOREF 셀의 텍스트 색을 지정하는 값입니다.

설명

기본적으로 이 메서드는 입력 매개 변수에 관계없이 호출 GetTextColor 됩니다. 전체 목록 컨트롤의 텍스트 색이 동일합니다. 파생 클래스에서 재정 OnGetCellTextColor 의하여 개별 셀을 별도의 텍스트 색으로 표시할 수 있습니다.

CMFCListCtrl::RemoveSortColumn

정렬된 열 목록에서 정렬 열을 제거합니다.

void RemoveSortColumn(int iColumn);

매개 변수

iColumn
[in] 제거할 열입니다.

설명

이 메서드는 헤더 컨트롤에서 정렬 열을 제거합니다. 를 호출합니다 CMFCHeaderCtrl::RemoveSortColumn.

CMFCListCtrl::SetSortColumn

현재 정렬된 열과 정렬 순서를 설정합니다.

void SetSortColumn(
    int iColumn,
    BOOL bAscending = TRUE,
    BOOL bAdd = FALSE);

매개 변수

iColumn
[in] 정렬할 열입니다.

bAscending
[in] 정렬 순서를 지정하는 부울입니다.

bAdd
[in] 메서드가 정렬 열 목록에 표시된 iColumn 열을 추가할지 여부를 지정하는 부울입니다.

설명

이 메서드는 메서드 CMFCHeaderCtrl::SetSortColumn를 사용하여 헤더 컨트롤에 입력 매개 변수를 전달합니다.

CMFCListCtrl::Sort

목록 컨트롤을 정렬합니다.

virtual void Sort(
    int iColumn,
    BOOL bAscending = TRUE,
    BOOL bAdd = FALSE);

매개 변수

iColumn
[in] 정렬할 열입니다.

bAscending
[in] 정렬 순서를 지정하는 부울입니다.

bAdd
[in] 이 메서드가 정렬 열 목록에 표시된 iColumn 열을 추가할지 여부를 지정하는 부울입니다.

참고 항목

계층 구조 차트
클래스
CListCtrl 클래스