共用方式為


CMFCHeaderCtrl 類別

類別 CMFCHeaderCtrl 支援排序標頭控制項中的多個資料行。

語法

class CMFCHeaderCtrl : public CHeaderCtrl

成員

公用建構函式

名稱 描述
CMFCHeaderCtrl::CMFCHeaderCtrl 建構 CMFCHeaderCtrl 物件。
CMFCHeaderCtrl::~CMFCHeaderCtrl 解構函式。

公用方法

名稱 描述
CMFCHeaderCtrl::EnableMultipleSort 啟用或停用 目前標頭控制項的多個資料行排序 模式。
CMFCHeaderCtrl::GetColumnState 指出資料行未排序,或是以遞增或遞減順序排序。
CMFCHeaderCtrl::GetSortColumn 擷取標頭控制項中第一個排序資料行之以零起始的索引。
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]資料行之以零起始的索引。

傳回值

值,表示指定之資料行的排序狀態。 下表列出可能的值:

Description
-1 依遞減順序排序。
0 未排序。
1 依遞增順序排序。

備註

CMFCHeaderCtrl::GetSortColumn

擷取標頭控制項中第一個排序資料行之以零起始的索引。

int GetSortColumn() const;

傳回值

已排序資料行的索引,如果找不到已排序的資料行,則為 -1。

備註

如果標頭控制項處於 多個資料行排序 模式,而且您已以偵錯模式編譯應用程式,此方法會判斷提示並建議您改用 CMFCHeaderCtrl::GetColumnState 方法。 如果標頭控制項處於多個資料行排序模式,而且您已在零售模式中編譯應用程式,這個方法會傳回 -1。

CMFCHeaderCtrl::IsAscending

指出標頭控制項中的任何資料行是否以遞增順序排序。

BOOL IsAscending() const;

傳回值

如果標頭控制項中的任何資料行是以遞增順序排序,則為 TRUE;否則為 FALSE。

備註

這個方法傳回的值是用來在標頭控制項專案上顯示適當的排序箭號。 使用 CMFCHeaderCtrl::SetSortColumn 方法來設定排序次序。

CMFCHeaderCtrl::IsDialogControl

指出目前標頭控制項的父視窗是否為對話方塊。

BOOL IsDialogControl() const;

傳回值

如果目前標頭控制項的父視窗是對話方塊,則為 TRUE;否則為 FALSE。

CMFCHeaderCtrl::IsMultipleSort

指出目前的標頭控制項是否處於 多個資料行排序 模式。

BOOL IsMultipleSort() const;

傳回值

如果已啟用多個資料行排序模式,則為 TRUE;否則為 FALSE。

備註

使用 CMFCHeaderCtrl::EnableMultipleSort 方法來啟用或停用多個資料行排序模式。 如果標頭控制項處於多個資料行排序模式,則兩個或多個資料行可以參與排序。

CMFCHeaderCtrl::OnDrawItem

由架構呼叫以繪製標頭控制項資料行。

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

參數

pDC
[in]裝置內容的指標。

iItem
[in]要繪製之專案之以零起始的索引。

矩形
[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]要移除之資料行之以零起始的索引。

CMFCHeaderCtrl::SetSortColumn

設定標頭控制項中指定資料行的排序次序。

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

參數

iColumn
[in]標頭控制項資料行之以零起始的索引。 如果此參數小於零,這個方法會從排序資料行清單中移除所有資料行。

bAscending
[in]指定 iColumn 參數所指定之資料行的 排序次序。 TRUE 可設定遞增順序;FALSE 可設定遞減順序。 預設值為 TRUE。

bAdd
[in]TRUE 可設定 iColumn 參數所指定之資料行的 排序次序。

如果目前的標頭控制項處於 多個資料行排序 模式,這個方法會將指定的資料行加入排序資料行清單。 使用 CMFCHeaderCtrl::EnableMultipleSort 來設定多個資料行排序模式。

如果未設定多個資料行排序模式,而且此方法是在偵錯模式中編譯,這個方法會判斷提示。 如果未設定多個資料行排序模式,而且此方法是以零售模式編譯,此方法會先從排序資料行清單中移除所有資料行,然後將指定的資料行新增至清單。

FALSE 會先從排序資料行清單中移除所有資料行,然後將指定的資料行新增至清單。 預設值為 FALSE。

備註

使用此方法可設定資料行的排序次序。 如有必要,這個方法會將資料行加入排序資料行清單。 標頭控制項會使用排序次序來繪製指向向上或向下的排序箭號。

另請參閱

階層架構圖表
類別
CMFCListCtrl 類別