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 클래스)의 열 집합을 동시에 정렬할 수 있는 경우 여러 열 정렬 모드를 사용합니다.
상속 계층 구조
요구 사항
헤더: 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입니다.
설명
이 메서드를 사용하여 열의 정렬 순서를 설정합니다. 필요한 경우 이 메서드는 정렬 열 목록에 열을 추가합니다. 머리글 컨트롤은 정렬 순서를 사용하여 위쪽 또는 아래쪽을 가리키는 정렬 화살표를 그립니다.