CWnd::OnCompareItem
フレームワークは、コンボ子で並べ替えてまたはオーナー描画リスト ボックスで新しい項目の相対位置を指定するには、このメンバー関数を呼び出します。
afx_msg int OnCompareItem(
int nIDCtl,
LPCOMPAREITEMSTRUCT lpCompareItemStruct
);
パラメーター
nIDCtl
WM_COMPAREITEM のメッセージを送信したコントロールの ID。lpCompareItemStruct
コンボ ボックスやリストに 2 個の項目の識別子と、アプリケーションが指定したデータを含む COMPAREITEMSTRUCT のデータ構造に長いポインターが格納されます。
戻り値
2 項目の相対位置を示します。これは、の値である可能性があります:
値 |
説明 |
---|---|
–1 |
項目 2.の前の項目 1 の並べ替え。 |
0 |
1 項目と項目 2 の並べ替え同じ。 |
1 |
項目 2.の後の項目 1 の並べ替え。 |
解説
コンボ ボックスやリストが CBS_SORT または LBS_SORT のスタイルで作成すると、Windows は、アプリケーションが新しい項目を追加するたびにコンボ ボックスやリスト ボックスのオーナー WM_COMPAREITEM のメッセージを送信します。
コンボ ボックスやリストの 2 項目は lpCompareItemStructが指す COMPAREITEMSTRUCT の構造体に強化されます。OnCompareItem は表示させるかいずれかの項目が他の前に示す値を返す必要があります。通常、Windows は新しい項目の正確な位置が判断するまでこの呼び出しに何度も説明します。
COMPAREITEMSTRUCT の構造体の hwndItem のメンバーが CListBox または CComboBox のオブジェクトに属する場合、適切なクラスの CompareItem の仮想関数が呼び出されます。項目の比較を行う CComboBox の CListBox または派生クラスのオーバーライド CComboBox::CompareItem か CListBox::CompareItem。
[!メモ]
このメンバー関数は、アプリケーションが Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。この関数に渡されるパラメーターの値は、フレームワークがメッセージ受信時に受け取ったパラメーターの値に基づいています。この関数の基本クラスの実装を呼び出した場合は、関数に渡したパラメーターではなく、メッセージと共に渡されたパラメーター自体が使用されます。
必要条件
ヘッダー: afxwin.h