CMFCListCtrl
類別
類別CMFCListCtrl
支援 類別的CMFCHeaderCtrl
CListCtrl
進階標頭控件功能,藉此擴充 Class 類別的功能。
語法
class CMFCListCtrl : public CListCtrl
成員
公用方法
名稱 | 描述 |
---|---|
CMFCListCtrl::EnableMarkSortedColumn |
可讓您以不同的背景色彩標記已排序的數據列。 |
CMFCListCtrl::EnableMultipleSort |
啟用多個排序模式。 |
CMFCListCtrl::GetHeaderCtrl |
傳回底線標頭控件的參考。 |
CMFCListCtrl::IsMultipleSort |
檢查清單控制項是否處於多個排序模式。 |
CMFCListCtrl::OnCompareItems |
架構在必須比較兩個清單控件專案時呼叫。 |
CMFCListCtrl::OnGetCellBkColor |
當架構必須判斷個別儲存格的背景色彩時,由架構呼叫。 |
CMFCListCtrl::OnGetCellFont |
當架構必須取得所繪製單元格的字型時,由架構呼叫。 |
CMFCListCtrl::OnGetCellTextColor |
當架構必須判斷個別儲存格的文字色彩時,由架構呼叫。 |
CMFCListCtrl::RemoveSortColumn |
從排序數據列清單中移除排序數據行。 |
CMFCListCtrl::SetSortColumn |
設定目前排序的數據行和排序順序。 |
CMFCListCtrl::Sort |
排序列表控件。 |
備註
CMFCListCtrl
提供類別類別的兩項CListCtrl
增強功能。 首先,它會透過自動在標頭上繪製排序箭號,表示數據行排序是可用的選項。 其次,它支援同時對多個數據行進行數據排序。
範例
下例示範如何在 CMFCListCtrl
類別中使用各種方法。 此範例示範如何建立清單控制件、插入數據行、插入專案、設定項目的文字,以及設定清單控制件的字型。 此代碼段是Visual Studio示範範例的一部分。
CMFCListCtrl m_wndWatch;
// DWORD dwStyle
// CRect rectDummy
m_wndWatch.Create(dwStyle, rectDummy, this, ID_LIST_1);
m_wndWatch.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
m_wndWatch.InsertColumn(0, _T("Variable"), LVCFMT_LEFT, 100);
m_wndWatch.InsertColumn(1, _T("Value"), LVCFMT_LEFT, 100);
m_wndWatch.InsertItem(0, _T("m_nCount"));
m_wndWatch.SetItemText(0, 1, _T("100"));
m_wndWatch.SetFont(&m_Font);
繼承階層架構
需求
標頭: afxlistctrl.h
CMFCListCtrl::EnableMarkSortedColumn
以不同的背景色彩標記已排序的數據行。
void EnableMarkSortedColumn(
BOOL bMark = TRUE,
BOOL bRedraw = TRUE);
參數
bMark
[in]布爾參數,決定是否要啟用不同的背景色彩。
bRedraw
[in]布爾參數,決定是否要立即重新繪製控件。
備註
EnableMarkSortedColumn
會使用 方法來 CDrawingManager::PixelAlpha
計算要用於排序數據行的色彩。 挑選的色彩是以一般背景色彩為基礎。
CMFCListCtrl::EnableMultipleSort
啟用依多個數據行排序列表控件中的數據列。
void EnableMultipleSort(BOOL bEnable = TRUE);
參數
bEnable
[in]布爾值,指定是否啟用多個數據行排序模式。
備註
當您根據多個數據行啟用排序時,數據行會有階層。 數據列會先依主數據行排序。 然後,系統會根據優先順序,依每個後續數據行排序任何對等值。
CMFCListCtrl::GetHeaderCtrl
傳回標頭控件的參考。
virtual CMFCHeaderCtrl& GetHeaderCtrl();
傳回值
基礎 CMFCHeaderCtrl
對象的參考。
備註
清單控制件的標題控件是包含資料列標題的視窗。 它通常直接位於數據行上方。
CMFCListCtrl::IsMultipleSort
檢查清單控制項目前是否支援對多個資料行進行排序。
BOOL IsMultipleSort() const;
傳回值
TRUE
如果清單控制項支援多個排序,則為 ; FALSE
否則。
備註
CMFCListCtrl
當 Class 支援多個排序時,使用者可以依多個數據行排序列表控件中的數據。 若要開啟多個排序,請呼叫 CMFCListCtrl::EnableMultipleSort
。
CMFCListCtrl::OnCompareItems
架構會在比較兩個專案時呼叫此方法。
virtual int OnCompareItems(
LPARAM lParam1,
LPARAM lParam2,
int iColumn);
參數
lParam1
[in]要比較的第一個專案。
lParam2
[in]要比較的第二個專案。
iColumn
[in]這個方法排序之數據行的索引。
傳回值
整數,表示兩個項目的相對位置。 負值表示第一個項目應該在第二個專案之前,正值表示第一個項目應該遵循第二個專案,而零表示兩個專案相等。
備註
默認實作一律會傳回 0。 覆寫此函式以提供您自己的排序演算法。
CMFCListCtrl::OnGetCellBkColor
架構必須判斷個別儲存格的背景色彩時,架構會呼叫此方法。
virtual COLORREF OnGetCellBkColor(
int nRow,
int nColumn);
參數
nRow
[in]有問題的儲存格列。
nColumn
[in]有問題的儲存格數據行。
傳回值
COLOREF
值,指定儲存格的背景色彩。
備註
的預設實 OnGetCellBkColor
作不會使用提供的輸入參數,而只會呼叫 GetBkColor
。 因此,根據預設,整個清單控件會有相同的背景色彩。 您可以在衍生類別中覆寫 OnGetCellBkColor
,以使用不同的背景色彩標記個別儲存格。
CMFCListCtrl::OnGetCellFont
架構會在取得個別儲存格的字型時呼叫此方法。
virtual HFONT OnGetCellFont(
int nRow,
int nColumn,
DWORD dwData = 0);
參數
nRow
[in]有問題的儲存格列。
nColumn
[in]有問題的儲存格數據行。
dwData
[in]使用者定義的數據。 默認實作不會使用此參數。
傳回值
用於目前儲存格之字型的句柄。
備註
根據預設,這個方法會傳 NULL
回 。 清單控制件中的所有儲存格都有相同的字型。 覆寫此方法,為不同的儲存格提供不同的字型。
CMFCListCtrl::OnGetCellTextColor
架構必須判斷個別儲存格的文字色彩時,架構會呼叫此方法。
virtual COLORREF OnGetCellTextColor(
int nRow,
int nColumn);
參數
nRow
[in]有問題的儲存格列。
nColumn
[in]有問題的儲存格數據行。
傳回值
COLOREF
值,指定儲存格的文字色彩。
備註
根據預設,不論輸入參數為何,這個方法都會呼叫 GetTextColor
。 整個清單控制件會有相同的文字色彩。 您可以在衍生類別中覆寫 OnGetCellTextColor
,以個別文字色彩標記個別儲存格。
CMFCListCtrl::RemoveSortColumn
從排序數據列清單中移除排序數據行。
void RemoveSortColumn(int iColumn);
參數
iColumn
[in]要移除的數據行。
備註
這個方法會從標頭控件中移除排序數據行。 它會呼叫 CMFCHeaderCtrl::RemoveSortColumn
。
CMFCListCtrl::SetSortColumn
設定目前排序的數據行和排序順序。
void SetSortColumn(
int iColumn,
BOOL bAscending = TRUE,
BOOL bAdd = FALSE);
參數
iColumn
[in]要排序的數據行。
bAscending
[in]指定排序順序的布爾值。
bAdd
[in]布爾值,指定 方法是否將 所 iColumn
指示的數據行加入排序數據行清單。
備註
這個方法會使用 方法 CMFCHeaderCtrl::SetSortColumn
,將輸入參數傳遞至標頭控件。
CMFCListCtrl::Sort
排序列表控件。
virtual void Sort(
int iColumn,
BOOL bAscending = TRUE,
BOOL bAdd = FALSE);
參數
iColumn
[in]要排序的數據行。
bAscending
[in]指定排序順序的布爾值。
bAdd
[in]布爾值,指定這個方法是否將 所 iColumn
指示的數據行加入排序數據行清單中。