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 データ構造体のメンバー hwndItem が CListBox オブジェクトまたは CComboBox オブジェクトに所属している場合は、適切なクラスの CompareItem 仮想関数が呼び出されます。 派生した CListBox または CComboBox クラスでは、項目を比較するために CComboBox::CompareItem または CListBox::CompareItem をオーバーライドしてください。
注意
このメンバー関数は、アプリケーションが Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 この関数に渡されるパラメーターの値は、フレームワークがメッセージ受信時に受け取ったパラメーターの値に基づいています。 この関数の基本クラスの実装を呼び出した場合は、関数に渡したパラメーターではなく、メッセージと共に渡されたパラメーター自体が使用されます。
必要条件
**ヘッダー:**afxwin.h