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