CMFCListCtrl クラス

CMFCListCtrl クラスは、CMFCHeaderCtrl クラスの高度なヘッダー制御機能をサポートすることで、CListCtrl クラスの機能を拡張します。

構文

class CMFCListCtrl : public CListCtrl

メンバー

パブリック メソッド

名前 説明
CMFCListCtrl::EnableMarkSortedColumn 並べ替えられた列を別の背景色でマークする機能を有効にします。
CMFCListCtrl::EnableMultipleSort 複数の並べ替えモードを有効にします。
CMFCListCtrl::GetHeaderCtrl 下線付きヘッダー コントロールへの参照を返します。
CMFCListCtrl::IsMultipleSort リスト コントロールが複数の並べ替えモードであるかどうかを確認します。
CMFCListCtrl::OnCompareItems 2 つのリスト コントロール項目を比較する必要がある場合に、フレームワークによって呼び出されます。
CMFCListCtrl::OnGetCellBkColor 個々のセルの背景色を決定する必要がある場合に、フレームワークによって呼び出されます。
CMFCListCtrl::OnGetCellFont 描画するセルのフォントを取得する必要がある場合に、フレームワークによって呼び出されます。
CMFCListCtrl::OnGetCellTextColor 個々のセルのテキストの色を決定する必要があるときに、フレームワークによって呼び出されます。
CMFCListCtrl::RemoveSortColumn 並べ替えられた列の一覧から並べ替え列を削除します。
CMFCListCtrl::SetSortColumn 現在の並べ替えられた列と並べ替え順序を設定します。
CMFCListCtrl::Sort リスト コントロールを並べ替えます。

解説

CMFCListCtrlには、クラスクラスCListCtrl 2 つの機能強化が用意されています。 最初に、ヘッダーに並べ替え矢印を自動的に描画することで、列の並べ替えが使用可能なオプションであることを示します。 2 つ目は、複数の列に対するデータの並べ替えを同時にサポートすることです。

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 クラスで複数の並べ替えがサポートされている場合、ユーザーはリスト コントロール内のデータを複数の列で並べ替えることができます。 複数の並べ替えを有効にするには、 CMFCListCtrl::EnableMultipleSortを呼び出します。

CMFCListCtrl::OnCompareItems

フレームワークは、2 つの項目を比較するときにこのメソッドを呼び出します。

virtual int OnCompareItems(
    LPARAM lParam1,
    LPARAM lParam2,
    int iColumn);

パラメーター

lParam1
[in]比較する最初の項目。

lParam2
[in]比較する 2 番目の項目。

iColumn
[in]このメソッドが並べ替える列のインデックス。

戻り値

2 つの項目の相対位置を示す整数。 負の値は、最初の項目が 2 番目の項目の前に置く必要があることを示し、正の値は最初の項目が 2 番目の項目の後に続く必要があることを示し、0 は 2 つの項目が等価であることを意味します。

解説

既定の実装では常に 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 クラス