CListBox::CompareItem
Chiamato dal framework per determinare la posizione relativa del nuovo elemento in una casella di riepilogo ordinata del disegno personalizzato.
virtual int CompareItem(
LPCOMPAREITEMSTRUCT lpCompareItemStruct
);
Parametri
- lpCompareItemStruct
Un puntatore a una struttura COMPAREITEMSTRUCT.
Valore restituito
Indica la posizione relativa dei due elementi descritti nella struttura COMPAREITEMSTRUCT.Può essere uno dei seguenti valori:
Valore |
Significato |
---|---|
–1 |
Ordina l'elemento 1 prima dell'elemento 2. |
0 |
Ordinamento l'elemento 1 e l'elemento 2 lo stesso. |
1 |
Ordina l'elemento 1 dopo l'elemento. 2. |
Vedere CWnd::OnCompareItem per una descrizione della struttura COMPAREITEMSTRUCT.
Note
Per impostazione predefinita, questa funzione membro non esegue alcuna operazione.Se si crea una casella di riepilogo Owner Draw con lo stile LBS_SORT, è necessario eseguire l'override della funzione membro per soddisfare il framework ordinati gli elementi nuovi aggiunti alla casella di riepilogo.
Esempio
// CMyODListBox is my owner-drawn list box derived from CListBox. This
// example compares two items using _tcscmp to sort items in reverse
// alphabetical order. The list box control was created with the
// following code:
// m_myODListBox.Create(
// WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|
// LBS_SORT|LBS_MULTIPLESEL|LBS_OWNERDRAWVARIABLE|LBS_WANTKEYBOARDINPUT,
// CRect(10,250,200,450), pParentWnd, IDC_MYODLISTBOX);
//
int CMyODListBox::CompareItem(LPCOMPAREITEMSTRUCT lpCompareItemStruct)
{
ASSERT(lpCompareItemStruct->CtlType == ODT_LISTBOX);
LPCTSTR lpszText1 = (LPCTSTR) lpCompareItemStruct->itemData1;
ASSERT(lpszText1 != NULL);
LPCTSTR lpszText2 = (LPCTSTR) lpCompareItemStruct->itemData2;
ASSERT(lpszText2 != NULL);
return _tcscmp(lpszText2, lpszText1);
}
Requisiti
Header: afxwin.h