CWnd::OnCompareItem

並べ替えられたオーナー描画のコンボ ボックスまたはリスト ボックスの新しい項目の相対位置を取得するために、フレームワークからこのメンバー関数が呼び出されます。

afx_msg int OnCompareItem(
   int nIDCtl,
   LPCOMPAREITEMSTRUCT lpCompareItemStruct 
);

パラメーター

  • nIDCtl
    WM_COMPAREITEM メッセージを送るコントロールの識別子。

  • lpCompareItemStruct
    コンボ ボックスまたはリスト ボックスの 2 つの項目の識別子やアプリケーション提供のデータを保持する COMPAREITEMSTRUCT データ構造体への long ポインター。

戻り値

2 つの項目の相対位置を識別する値を返します。 次のいずれかの値を使用できます。

説明

–1

並べ替え後の項目 1 の位置は、項目 2 の前になります。

0

並べ替え後の項目 1 の位置は、項目 2 と同じになります。

1

並べ替え後の項目 1 の位置は、項目 2 の後ろになります。

解説

コンボ ボックスまたはリスト ボックスが CBS_SORT または LBS_SORT スタイルを使って作成された場合は、アプリケーションによって新しい項目が追加されるたびに、Windows はそのコンボ ボックスまたはリスト ボックスのオーナーに WM_COMPAREITEM メッセージを送ります。

コンボ ボックスまたはリスト ボックスの 2 つの項目は、lpCompareItemStruct で指定される COMPAREITEMSTRUCT データ構造体でリフォームされます。 OnCompareItem 関数は、どちらの項目を先に表示するかを示す値を返します。 通常は、新しい項目の正確な位置を知るまで、Windows は繰り返しこの関数を呼び出します。

COMPAREITEMSTRUCT データ構造体のメンバー hwndItemCListBox オブジェクトまたは CComboBox オブジェクトに所属している場合は、適切なクラスの CompareItem 仮想関数が呼び出されます。 派生した CListBox または CComboBox クラスでは、項目を比較するために CComboBox::CompareItem または CListBox::CompareItem をオーバーライドしてください。

注意

このメンバー関数は、アプリケーションが Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 この関数に渡されるパラメーターの値は、フレームワークがメッセージ受信時に受け取ったパラメーターの値に基づいています。 この関数の基本クラスの実装を呼び出した場合は、関数に渡したパラメーターではなく、メッセージと共に渡されたパラメーター自体が使用されます。

必要条件

**ヘッダー:**afxwin.h

参照

参照

CWnd クラス

階層図

COMPAREITEMSTRUCT 構造体

WM_COMPAREITEM

CListBox::CompareItem

CComboBox::CompareItem

概念

CWnd のメンバー