分享方式:


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]要繪製之專案之以零起始的索引。

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]要移除之數據行之以零起始的索引。

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 類別