Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TreeControl: TVI_SORT с моим компаратором 
:(
    Опции темы
_hunter
  Дата 5.11.2008, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 5
Всего: 98



Добрый день.

Можно ли как-то сделать так, чтобы дерево само сортировалось (вставка с InsertAfter == TVI_SORT) но при этом использовало мой компаратор?

С уважением...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Andrey44
Дата 6.11.2008, 08:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 12
Всего: 26



При инсерте сортируй.
Код

// Sort the item in reverse alphabetical order.
int CALLBACK MyCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
   // lParamSort contains a pointer to the tree control.
   // The lParam of an item is just its handle, 
   // as specified with SetItemData
   CTreeCtrl* pmyTreeCtrl = (CTreeCtrl*)lParamSort;
   CString strItem1 = pmyTreeCtrl->GetItemText((HTREEITEM)lParam1);
   CString strItem2 = pmyTreeCtrl->GetItemText((HTREEITEM)lParam2);

   return strItem2.Compare(strItem1);
}


TVSORTCB tvs;

// Sort the tree control's items using my
// callback procedure.
tvs.hParent = TVI_ROOT;
tvs.lpfnCompare = MyCompareProc;
tvs.lParam = (LPARAM)&m_TreeCtrl;

m_TreeCtrl.SortChildrenCB(&tvs);




--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
_hunter
Дата 6.11.2008, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 5
Всего: 98



Ручная сортировка не подходит. Как я писал -- нужно чтобы дерево сортировалось само.


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Andrey44
Дата 6.11.2008, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 12
Всего: 26



А откуда оно само узнает(дерево) как ему надо сортироваться?


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
_hunter
Дата 6.11.2008, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 5
Всего: 98



В этом, вроде как, и состоит вопрос...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Andrey44
Дата 6.11.2008, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 12
Всего: 26



 smile ну я думаю еще не написан компилер который умеет читать мысли.


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
_hunter
Дата 6.11.2008, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 5
Всего: 98



А при чем тут чтение мыслей? Все, что мне нужно -- чтобы стандартный сортировщик дерева использовал мой компаратор.


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Andrey44
Дата 6.11.2008, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 12
Всего: 26



Цитата(_hunter @  6.11.2008,  14:05 Найти цитируемый пост)
А при чем тут чтение мыслей? Все, что мне нужно -- чтобы стандартный сортировщик дерева использовал мой компаратор. 

Хорошо, по каким критериям он должен сравнивать? По алфавиту, по длинне строки или по тому и другому сразу?
Откуда компаратор может знать что вы от него хотите?


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
_hunter
Дата 6.11.2008, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 5
Всего: 98



Цитата(Andrey44 @  6.11.2008,  13:10 Найти цитируемый пост)
Откуда компаратор может знать что вы от него хотите?

Эм... потому как в компараторе написанно (псевдокод):
если итем1дата > итем2дата
вернуть 1;
иначе вернуть -1;
...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Andrey44
Дата 6.11.2008, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 12
Всего: 26



А по каким критериям он должен сравнивать итем1дата и итем2дата ?


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
_hunter
Дата 6.11.2008, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 5
Всего: 98



эээ... по критерию больше/меньше...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Bukmop
Дата 6.11.2008, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 1.6.2006
Где: Москва

Репутация: 2
Всего: 3



sorry
ошибся

Это сообщение отредактировал(а) Bukmop - 6.11.2008, 19:07
PM MAIL   Вверх
Artemon
Дата 30.11.2008, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: нет
Всего: 20



Цитата

  ну я думаю еще не написан компилер который умеет читать мысли.


Вообще-то это стандартный подход, который например используется в STL.



--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
Andrey44
Дата 1.12.2008, 07:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 12
Всего: 26



Цитата(Artemon @  30.11.2008,  14:22 Найти цитируемый пост)
стандартный подход, который например используется в STL.

Подход к чему?


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0781 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.