다음을 통해 공유


CMFCHeaderCtrl 클래스

이 클래스는 CMFCHeaderCtrl 헤더 컨트롤에서 여러 열 정렬을 지원합니다.

구문

class CMFCHeaderCtrl : public CHeaderCtrl

멤버

공용 생성자

속성 설명
CMFCHeaderCtrl::CMFCHeaderCtrl CMFCHeaderCtrl 개체를 생성합니다.
CMFCHeaderCtrl::~CMFCHeaderCtrl 소멸자

공용 메서드

이름 설명
CMFCHeaderCtrl::EnableMultipleSort 현재 헤더 컨트롤에 대해 여러 열 정렬 모드를 사용하거나 사용하지 않도록 설정합니다.
CMFCHeaderCtrl::GetColumnState 열이 정렬되지 않았는지 또는 오름차순 또는 내림차순으로 정렬되는지를 나타냅니다.
CMFCHeaderCtrl::GetSortColumn 헤더 컨트롤에서 정렬된 첫 번째 열의 인덱스(0부터 시작)를 검색합니다.
CMFCHeaderCtrl::GetThisClass 프레임워크에서 이 클래스 형식과 연결된 CRuntimeClass 개체에 대한 포인터를 가져오는 데 사용됩니다.
CMFCHeaderCtrl::IsAscending 헤더 컨트롤의 열이 오름차순으로 정렬되는지 여부를 나타냅니다.
CMFCHeaderCtrl::IsDialogControl 현재 헤더 컨트롤의 부모 창이 대화 상자인지 여부를 나타냅니다.
CMFCHeaderCtrl::IsMultipleSort 현재 헤더 컨트롤 이 여러 열 정렬 모드에 있는지 여부를 나타냅니다.
CMFCHeaderCtrl::RemoveSortColumn 정렬 열 목록에서 지정된 열을 제거합니다.
CMFCHeaderCtrl::SetSortColumn 헤더 컨트롤에서 지정된 열의 정렬 순서를 설정합니다.

보호된 메서드

속성 설명
CMFCHeaderCtrl::OnDrawItem 헤더 컨트롤 열을 그리기 위해 프레임워크에서 호출됩니다.
CMFCHeaderCtrl::OnDrawSortArrow 정렬 화살표를 그리기 위해 프레임워크에서 호출됩니다.
CMFCHeaderCtrl::OnFillBackground 헤더 컨트롤 열의 배경을 채우기 위해 프레임워크에서 호출됩니다.

예시

다음 예제에서는 클래스의 CMFCHeaderCtrl 개체를 생성하는 방법과 현재 헤더 컨트롤에 대해 여러 열 정렬 모드를 사용하도록 설정하는 방법을 보여 줍니다.

CMFCHeaderCtrl *headerCtrl = new CMFCHeaderCtrl();
headerCtrl->EnableMultipleSort();

설명

클래스는 CMFCHeaderCtrl 열이 정렬되었음을 나타내기 위해 머리글 컨트롤 열에 정렬 화살표를 그립니다. 부모 목록 컨트롤(CMFCListCtrl 클래스)의 열 집합을 동시에 정렬할 수 있는 경우 여러 열 정렬 모드를 사용합니다.

상속 계층 구조

CObject

CCmdTarget

CWnd

CHeaderCtrl

CMFCHeaderCtrl

요구 사항

헤더: afxheaderctrl.h

CMFCHeaderCtrl::CMFCHeaderCtrl

CMFCHeaderCtrl 개체를 생성합니다.

CMFCHeaderCtrl::CMFCHeaderCtrl()

설명

이 생성자는 다음 멤버 변수를 지정된 값으로 초기화합니다.

멤버 변수
m_bIsMousePressed FALSE
m_bMultipleSort FALSE
m_bAscending TRUE
m_nHighlightedItem -1
m_bTracked FALSE
m_bIsDlgControl FALSE
m_hFont NULL

CMFCHeaderCtrl::EnableMultipleSort

현재 헤더 컨트롤에 대해 여러 열 정렬 모드를 사용하거나 사용하지 않도록 설정합니다.

void EnableMultipleSort(BOOL bEnable=TRUE);

매개 변수

bEnable
[in] 여러 열 정렬 모드를 사용하도록 설정하려면 TRUE입니다. 여러 열 정렬 모드를 사용하지 않도록 설정하고 정렬된 열 목록에서 열을 제거하려면 FALSE입니다. 기본값은 TRUE입니다.

설명

이 메서드를 사용하여 여러 열 정렬 모드를 사용하거나 사용하지 않도록 설정합니다. 헤더 컨트롤이 여러 열 정렬 모드인 경우 둘 이상의 열이 정렬에 참여할 수 있습니다.

CMFCHeaderCtrl::GetColumnState

열이 정렬되지 않았는지 또는 오름차순 또는 내림차순으로 정렬되는지를 나타냅니다.

int GetColumnState(int iColumn) const;

매개 변수

iColumn
[in] 열의 인덱스(0부터 시작하는 인덱스)입니다.

Return Value

지정된 열의 정렬 상태 나타내는 값입니다. 다음 표에서는 가능한 값을 나열합니다.

설명
-1 내림차순으로 정렬됩니다.
0 정렬되지 않았습니다.
1 오름차순으로 정렬됩니다.

설명

CMFCHeaderCtrl::GetSortColumn

헤더 컨트롤에서 정렬된 첫 번째 열의 인덱스(0부터 시작)를 검색합니다.

int GetSortColumn() const;

Return Value

정렬된 열의 인덱스이거나 정렬된 열이 없으면 -1입니다.

설명

헤더 컨트롤이 여러 열 정렬 모드에 있고 디버그 모드에서 애플리케이션을 컴파일한 경우 이 메서드는 CMFCHeaderCtrl::GetColumnState 메서드를 대신 사용하도록 조언합니다. 헤더 컨트롤이 여러 열 정렬 모드에 있고 소매 모드에서 애플리케이션을 컴파일한 경우 이 메서드는 -1을 반환합니다.

CMFCHeaderCtrl::IsAscending

헤더 컨트롤의 열이 오름차순으로 정렬되는지 여부를 나타냅니다.

BOOL IsAscending() const;

Return Value

헤더 컨트롤의 열이 오름차순으로 정렬되면 TRUE이고, 그렇지 않으면 FALSE입니다.

설명

이 메서드가 반환하는 값은 헤더 컨트롤 항목에 적절한 정렬 화살표를 표시하는 데 사용됩니다. CMFCHeaderCtrl::SetSortColumn 메서드를 사용하여 정렬 순서를 설정합니다.

CMFCHeaderCtrl::IsDialogControl

현재 헤더 컨트롤의 부모 창이 대화 상자인지 여부를 나타냅니다.

BOOL IsDialogControl() const;

Return Value

현재 헤더 컨트롤의 부모 창이 대화 상자이면 TRUE이고, 그렇지 않으면 FALSE입니다.

CMFCHeaderCtrl::IsMultipleSort

현재 헤더 컨트롤 이 여러 열 정렬 모드에 있는지 여부를 나타냅니다.

BOOL IsMultipleSort() const;

Return Value

여러 열 정렬 모드를 사용하는 경우 TRUE입니다. 그렇지 않으면 FALSE입니다.

설명

CMFCHeaderCtrl::EnableMultipleSort 메서드를 사용하여 여러 열 정렬 모드를 사용하거나 사용하지 않도록 설정합니다. 헤더 컨트롤이 여러 열 정렬 모드인 경우 둘 이상의 열이 정렬에 참여할 수 있습니다.

CMFCHeaderCtrl::OnDrawItem

헤더 컨트롤 열을 그리기 위해 프레임워크에서 호출됩니다.

virtual void OnDrawItem(
    CDC* pDC,
    int iItem,
    CRect rect,
    BOOL bIsPressed,
    BOOL bIsHighlighted);

매개 변수

pDC
[in] 디바이스 컨텍스트에 대한 포인터입니다.

iItem
[in] 그릴 항목의 인덱스(0부터 시작하는 인덱스)입니다.

rect
[in] 그릴 항목의 경계 사각형입니다.

bIsPressed
[in] TRUE이면 항목을 누름 상태로 그립니다. 그렇지 않으면 FALSE입니다.

bIsHighlighted
[in] TRUE이면 항목을 강조 표시된 상태로 그립니다. 그렇지 않으면 FALSE입니다.

CMFCHeaderCtrl::OnDrawSortArrow

정렬 화살표를 그리기 위해 프레임워크에서 호출됩니다.

virtual void OnDrawSortArrow(
    CDC* pDC,
    CRect rectArrow);

매개 변수

pDC
[in] 디바이스 컨텍스트에 대한 포인터입니다.

rectArrow
[in] 정렬 화살표의 경계 사각형입니다.

CMFCHeaderCtrl::OnFillBackground

헤더 컨트롤 열의 배경을 채우기 위해 프레임워크에서 호출됩니다.

virtual void OnFillBackground(CDC* pDC);

매개 변수

pDC
[in] 디바이스 컨텍스트에 대한 포인터입니다.

설명

CMFCHeaderCtrl::RemoveSortColumn

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

void RemoveSortColumn(int iColumn);

매개 변수

iColumn
[in] 제거할 열의 인덱스(0부터 시작하는 인덱스)입니다.

CMFCHeaderCtrl::SetSortColumn

헤더 컨트롤에서 지정된 열의 정렬 순서를 설정합니다.

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

매개 변수

iColumn
[in] 헤더 컨트롤 열의 인덱스(0부터 시작하는 인덱스)입니다. 이 매개 변수가 0보다 작은 경우 이 메서드는 정렬 열 목록에서 모든 열을 제거합니다.

bAscending
[in] iColumn 매개 변수가 지정하는 열의 정렬 순서를 지정합니다. 오름차순을 설정하려면 TRUE입니다. 내림차순을 설정하는 FALSE입니다. 기본값은 TRUE입니다.

bAdd
[in] TRUE이면 iColumn 매개 변수가 지정하는 열의 정렬 순서를 설정합니다.

현재 헤더 컨트롤이 여러 열 정렬 모드인 경우 이 메서드는 지정된 열을 정렬 열 목록에 추가합니다. CMFCHeaderCtrl::EnableMultipleSort를 사용하여 여러 열 정렬 모드를 설정합니다.

여러 열 정렬 모드가 설정되지 않고 이 메서드가 디버그 모드로 컴파일되면 이 메서드가 어설션됩니다. 여러 열 정렬 모드가 설정되지 않고 이 메서드가 정품 모드로 컴파일되는 경우 이 메서드는 먼저 정렬 열 목록에서 모든 열을 제거한 다음 지정된 열을 목록에 추가합니다.

FALSE이면 먼저 정렬 열 목록에서 모든 열을 제거한 다음 지정된 열을 목록에 추가합니다. 기본값은 FALSE입니다.

설명

이 메서드를 사용하여 열의 정렬 순서를 설정합니다. 필요한 경우 이 메서드는 정렬 열 목록에 열을 추가합니다. 머리글 컨트롤은 정렬 순서를 사용하여 위쪽 또는 아래쪽을 가리키는 정렬 화살표를 그립니다.

참고 항목

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