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 類別,請使用多個資料行排序模式。
繼承階層架構
需求
標頭: 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。
備註
使用此方法可設定數據行的排序順序。 如有必要,這個方法會將數據行加入排序數據行清單。 標頭控件會使用排序順序來繪製指向向上或向下的排序箭號。