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]要繪製之專案之以零起始的索引。
矩形
[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。
備註
使用此方法可設定資料行的排序次序。 如有必要,這個方法會將資料行加入排序資料行清單。 標頭控制項會使用排序次序來繪製指向向上或向下的排序箭號。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應