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);
継承階層
要件
ヘッダー: 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
で示される列を追加するかどうかを指定するブール値です。