共用方式為


CMFCListCtrl 類別

類別 CMFCListCtrl 支援 類別的 CMFCHeaderCtrlCListCtrl 進階標頭控制項功能,藉此擴充 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