virtual int CompareItem( LPCOMPAREITEMSTRUCT lpCompareItemStruct );
Возвращаемое значение
Указывает относительную позицию из двух элементов, описанных в структуре COMPAREITEMSTRUCT. Это может быть любое из следующих значений:
-1 Элемент 1 перед элементом 2.
0 Элемент 1 и элемент 2 сортирует как тот же самый.
1 Элемент 1 после элемента 2.
Параметры
lpCompareItemStruct
Длинный указатель на структуру COMPAREITEMSTRUCT.
Замечания
Вызываться рамкой, чтобы определить относительную позицию нового элемента в сортируемом владельцем списке. По умолчанию, эта функция не делает ничего. Если Вы создаете владельца - выводящийся список с LBS_SORT стилем, Вы должны перегрузить эту функцию, чтобы помочь рамке в сортировке новых элементов, добавленных к списку.
Пример.
Пример
// CMyListBox - мой выведенный владельцем список, полученный из CListBox. Это
// пример сравнивает два элемента, использующие strcmp к элементам сортировки в обратном
// алфавитном порядке. Управление списка было создано со
// следующим кодом:
// pmyListBox->Create(
// WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|
// LBS_SORT|LBS_MULTIPLESEL|LBS_OWNERDRAWVARIABLE,
// myRect, pParentWnd, 1);
//
int CMyListBox::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 strcmp(lpszText2, lpszText1);
}