CComboBox::CompareItem
Chiamato dal framework per determinare la posizione relativa di nuovo elemento nella parte di tipo casella di riepilogo della casella combinata 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 COMPAREITEMSTRUCT.
Note
Per impostazione predefinita, questa funzione membro non esegue alcuna operazione.Se si crea una casella combinata del disegno personalizzato 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
// CMyComboBox is my owner-drawn combo box derived from CComboBox. This
// example compares two items using strcmp to sort items in reverse
// alphabetical order. The combo box control was created with the
// following code:
// pmyComboBox->Create(
// WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|
// CBS_SORT|CBS_OWNERDRAWVARIABLE,
// myRect, pParentWnd, 1);
//
int CMyComboBox::CompareItem(LPCOMPAREITEMSTRUCT lpCompareItemStruct)
{
int iComp = 0;
ASSERT(lpCompareItemStruct->CtlType == ODT_COMBOBOX);
LPCTSTR lpszText1 = (LPCTSTR) lpCompareItemStruct->itemData1;
ASSERT(lpszText1 != NULL);
LPCTSTR lpszText2 = (LPCTSTR) lpCompareItemStruct->itemData2;
ASSERT(lpszText2 != NULL);
if (NULL != lpszText1 && NULL != lpszText2)
{
iComp = _tcscmp(lpszText2, lpszText1);
}
return iComp;
}
Requisiti
Header: afxwin.h