共用方式為


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);

繼承階層架構

CObject

CCmdTarget

CWnd

CListCtrl

CMFCListCtrl

需求

標頭: 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 指示的數據行加入排序數據行清單中。

另請參閱

階層架構圖表
類別
CListCtrl