Share via


CComboBox::CompareItem

Llamado por el marco para determinar la posición relativa de un nuevo elemento en la sección del cuadro de lista de un cuadro combinado ordenado de dibujo propietario.

virtual int CompareItem(
   LPCOMPAREITEMSTRUCT lpCompareItemStruct 
);

Parámetros

Valor devuelto

Indica la posición relativa de los elementos descritos en la estructura de COMPAREITEMSTRUCT .Puede ser cualquiera de los valores siguientes:

Valor

Significado

– 1

Ordena el punto 1 antes del punto 2.

0

El punto 1 y el punto 2 ordenan igual.

1

Ordena el punto 1 después del punto 2.

Vea CWnd:: OnCompareItem para obtener una descripción de COMPAREITEMSTRUCT.

Comentarios

De forma predeterminada, esta función miembro no hace nada.Si crea un cuadro combinado de dibujo propietario con el estilo de LBS_SORT , debe invalidar esta función miembro para ayudar al marco en los nuevos elementos de ordenación agregados al cuadro de lista.

Ejemplo

// 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;
}

Requisitos

encabezado: afxwin.h

Vea también

Referencia

Clase CComboBox

Gráfico de jerarquía

WM_COMPAREITEM

CComboBox::DrawItem

CComboBox::MeasureItem

CComboBox::DeleteItem