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

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

Vedere anche

Riferimenti

Classe di CComboBox

Grafico della gerarchia

WM_COMPAREITEM

CComboBox::DrawItem

CComboBox::MeasureItem

CComboBox::DeleteItem