Шаг 950 - CListBox::CompareItem

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

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 12.02.2002