CMFCListCtrl
クラス
クラスはCMFCListCtrl
、クラスのCListCtrl
高度なヘッダー制御機能をサポートすることで、Class クラスの機能をCMFCHeaderCtrl
拡張します。
構文
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
には、Class クラスに 2 つの機能強化がCListCtrl
用意されています。 最初に、ヘッダーに並べ替え矢印を自動的に描画することで、列の並べ替えが使用可能なオプションであることを示します。 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
の一覧に追加するかどうかを指定するブール値。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示