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