CWnd::OnCompareItem
更新 : 2007 年 11 月
並べ替えられたオーナー描画のコンボ ボックスまたはリスト ボックスの新しい項目の相対位置を取得するために、フレームワークからこのメンバ関数が呼び出されます。
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