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

ek277xkf.alert_note(ja-jp,VS.90).gifメモ :

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

必要条件

ヘッダー : afxwin.h

参照

参照

CWnd クラス

階層図

COMPAREITEMSTRUCT 構造体

WM_COMPAREITEM

CListBox::CompareItem

CComboBox::CompareItem

その他の技術情報

CWnd のメンバ