次の方法で共有


CMFCHeaderCtrl クラス

CMFCHeaderCtrl クラスは、ヘッダー コントロール内の複数の列の並べ替えをサポートしています。

構文

class CMFCHeaderCtrl : public CHeaderCtrl

メンバー

パブリック コンストラクター

名前 説明
CMFCHeaderCtrl::CMFCHeaderCtrl CMFCHeaderCtrl オブジェクトを構築します。
CMFCHeaderCtrl::~CMFCHeaderCtrl デストラクターです。

パブリック メソッド

名前 説明
CMFCHeaderCtrl::EnableMultipleSort 現在のヘッダー コントロール 複数列の並べ替え モードを有効または無効にします。
CMFCHeaderCtrl::GetColumnState 列が並べ替えられないか、昇順または降順で並べ替えられているかを示します。
CMFCHeaderCtrl::GetSortColumn ヘッダー コントロール内の最初の並べ替えられた列の 0 から始まるインデックスを取得します。
CMFCHeaderCtrl::GetThisClass このクラス型に関連付けられている CRuntimeClass オブジェクトへのポインターを取得するためにフレームワークによって使用されます。
CMFCHeaderCtrl::IsAscending ヘッダー コントロール内の列を昇順で並べ替えるかどうかを示します。
CMFCHeaderCtrl::IsDialogControl 現在のヘッダー コントロールの親ウィンドウがダイアログ ボックスかどうかを示します。
CMFCHeaderCtrl::IsMultipleSort 現在のヘッダー コントロールが複数列の並べ替え モードかどうかを示します。
CMFCHeaderCtrl::RemoveSortColumn 並べ替え列の一覧から指定した列を削除します。
CMFCHeaderCtrl::SetSortColumn ヘッダー コントロール内の指定した列の並べ替え順序を設定します。

保護メソッド

名前 説明
CMFCHeaderCtrl::OnDrawItem ヘッダー コントロール列を描画するためにフレームワークによって呼び出されます。
CMFCHeaderCtrl::OnDrawSortArrow 並べ替え矢印を描画するためにフレームワークによって呼び出されます。
CMFCHeaderCtrl::OnFillBackground ヘッダー コントロール列の背景を埋めるためにフレームワークによって呼び出されます。

次の例では、 CMFCHeaderCtrl クラスのオブジェクトを構築する方法と、現在のヘッダー コントロール 複数列の並べ替え モードを有効にする方法を示します。

CMFCHeaderCtrl *headerCtrl = new CMFCHeaderCtrl();
headerCtrl->EnableMultipleSort();

解説

CMFCHeaderCtrl クラスは、列が並べ替えられていることを示す並べ替え矢印をヘッダー コントロール列に描画します。 親リスト コントロール (CMFCListCtrl クラス) 内の列のセットを同時に並べ替えることができる場合は、複数列の並べ替えモードを使用します。

継承階層

CObject

CCmdTarget

CWnd

CHeaderCtrl

CMFCHeaderCtrl

要件

Header: afxheaderctrl.h

CMFCHeaderCtrl::CMFCHeaderCtrl

CMFCHeaderCtrl オブジェクトを構築します。

CMFCHeaderCtrl::CMFCHeaderCtrl()

解説

このコンストラクターは、次のメンバー変数を指定された値に初期化します。

メンバー変数 Value
m_bIsMousePressed FALSE
m_bMultipleSort false
m_bAscending TRUE
m_nHighlightedItem -1
m_bTracked FALSE
m_bIsDlgControl FALSE
m_hFont NULL

CMFCHeaderCtrl::EnableMultipleSort

現在のヘッダー コントロール 複数列の並べ替え モードを有効または無効にします。

void EnableMultipleSort(BOOL bEnable=TRUE);

パラメーター

bEnable
[in]複数列の並べ替えモードを有効にする場合は TRUE。複数列の並べ替えモードを無効にし、並べ替えられた列の一覧から列を削除する場合は FALSE。 既定値は TRUE です。

解説

複数列の並べ替えモードを有効または無効にするには、このメソッドを使用します。 ヘッダー コントロールが複数列の並べ替えモードの場合、2 つ以上の列を並べ替えに参加させることができます。

CMFCHeaderCtrl::GetColumnState

列が並べ替えられていないか、昇順または降順で並べ替えられているかを示します。

int GetColumnState(int iColumn) const;

パラメーター

iColumn
[in]列の 0 から始まるインデックス。

戻り値

指定した列の並べ替え状態を示す値。 可能な値を次の表に示します。

Value 説明
-1 降順で並べ替えられます。
0 並べ替えされていません。
1 昇順で並べ替えられます。

解説

CMFCHeaderCtrl::GetSortColumn

ヘッダー コントロール内の最初の並べ替えられた列の 0 から始まるインデックスを取得します。

int GetSortColumn() const;

戻り値

並べ替えられた列のインデックス。並べ替えられた列が見つからない場合は -1。

解説

ヘッダー コントロールが 複数列並べ替え モードで、デバッグ モードでアプリケーションをコンパイルした場合、このメソッドは、代わりに CMFCHeaderCtrl::GetColumnState メソッドを使用することを推奨します。 ヘッダー コントロールが複数列並べ替えモードで、アプリケーションをリテール モードでコンパイルした場合、このメソッドは -1 を返します。

CMFCHeaderCtrl::IsAscending

ヘッダー コントロール内の列を昇順で並べ替えるかどうかを示します。

BOOL IsAscending() const;

戻り値

ヘッダー コントロール内の列が昇順で並べ替えられている場合は TRUE。それ以外の場合は FALSE。

解説

このメソッドが返す値は、ヘッダー コントロール項目に適切な並べ替え矢印を表示するために使用されます。 並べ替え順序を設定するには、 CMFCHeaderCtrl::SetSortColumn メソッドを使用します。

CMFCHeaderCtrl::IsDialogControl

現在のヘッダー コントロールの親ウィンドウがダイアログ ボックスかどうかを示します。

BOOL IsDialogControl() const;

戻り値

現在のヘッダー コントロールの親ウィンドウがダイアログ ボックスの場合は TRUE。それ以外の場合は FALSE。

CMFCHeaderCtrl::IsMultipleSort

現在のヘッダー コントロールが複数列の並べ替え モードかどうかを示します。

BOOL IsMultipleSort() const;

戻り値

複数列の並べ替えモードが有効な場合は TRUE。それ以外の場合は FALSE。

解説

複数列の並べ替えモードを有効または無効にするには、 CMFCHeaderCtrl::EnableMultipleSort メソッドを使用します。 ヘッダー コントロールが複数列の並べ替えモードの場合、2 つ以上の列を並べ替えに参加させることができます。

CMFCHeaderCtrl::OnDrawItem

ヘッダー コントロール列を描画するためにフレームワークによって呼び出されます。

virtual void OnDrawItem(
    CDC* pDC,
    int iItem,
    CRect rect,
    BOOL bIsPressed,
    BOOL bIsHighlighted);

パラメーター

pDC
[入力] デバイス コンテキストへのポインター。

iItem
[in]描画する項目の 0 から始まるインデックス。

rect
[in]描画する項目の外接する四角形。

bIsPressed
[in]押された状態でアイテムを描画する場合は TRUE。それ以外の場合は FALSE。

bIsHighlighted
[in]強調表示された状態で項目を描画する場合は TRUE。それ以外の場合は FALSE。

CMFCHeaderCtrl::OnDrawSortArrow

並べ替え矢印を描画するためにフレームワークによって呼び出されます。

virtual void OnDrawSortArrow(
    CDC* pDC,
    CRect rectArrow);

パラメーター

pDC
[入力] デバイス コンテキストへのポインター。

rectArrow
[in]並べ替え矢印の外接する四角形。

CMFCHeaderCtrl::OnFillBackground

ヘッダー コントロール列の背景を埋めるためにフレームワークによって呼び出されます。

virtual void OnFillBackground(CDC* pDC);

パラメーター

pDC
[入力] デバイス コンテキストへのポインター。

解説

CMFCHeaderCtrl::RemoveSortColumn

並べ替え列の一覧から指定した列を削除します。

void RemoveSortColumn(int iColumn);

パラメーター

iColumn
[in]削除する列の 0 から始まるインデックス。

CMFCHeaderCtrl::SetSortColumn

ヘッダー コントロール内の指定した列の並べ替え順序を設定します。

void SetSortColumn(
    int iColumn,
    BOOL bAscending=TRUE,
    BOOL bAdd=FALSE);

パラメーター

iColumn
[in]ヘッダー コントロール列の 0 から始まるインデックス。 このパラメーターが 0 未満の場合、このメソッドは並べ替え列の一覧からすべての列を削除します。

bAscending
[in] iColumn パラメーターが指定する列の並べ替え順序を指定します。 昇順を設定する場合は TRUE。降順を設定する場合は FALSE。 既定値は TRUE です。

bAdd
[in]true iColumn パラメーターが指定する列の並べ替え順序を設定します。

現在のヘッダー コントロールが複数列 並べ替えモードの場合 このメソッドは、指定した列を並べ替え列の一覧に追加します。 CMFCHeaderCtrl::EnableMultipleSort を使用して複数列の並べ替えモードを設定します。

複数列の並べ替えモードが設定されておらず、このメソッドがデバッグ モードでコンパイルされている場合、このメソッドはアサートします。 複数列の並べ替えモードが設定されておらず、このメソッドがリテール モードでコンパイルされている場合、このメソッドは最初に並べ替え列の一覧からすべての列を削除してから、指定した列をリストに追加します。

最初に並べ替え列の一覧からすべての列を削除し、指定した列をリストに追加する場合は FALSE。 既定値は FALSE です。

解説

列の並べ替え順序を設定するには、このメソッドを使用します。 必要に応じて、このメソッドは列を並べ替え列の一覧に追加します。 ヘッダー コントロールは、並べ替え順序を使用して、上下を指す並べ替え矢印を描画します。

関連項目

階層図
クラス
CMFCListCtrl クラス