Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как бы вы поступили...Хранение ид 
:(
    Опции темы
tonchitos
Дата 24.4.2008, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 447
Регистрация: 24.2.2007

Репутация: 1
Всего: 40



У меня есть дерево, CTreeCtrl.

которое является графическим представлением модели (UML) так вот...каждый узел дерева хранит указатель на элемент в дереве данных....


У меня в дереве есть некоторые элементы (класс...... таккие элементы хранят атрибуты, операции и еще один узел, в котором есть список базовых классов...


класс
    атрибут
    атрибут
    атрибут
    операция
    операция
    базовые классы
        базовый класс один
        базовый класс два

так вот если все атрибуты и операции и классы и пакеты и проч в itemData хранят указатель на идентификатор элемента в дереве данных...
то узел-базовый класс должен хранить указатель на HTREEITEM этого базового класса... чтобы при клике на базовый класс происходил переход к нему в дереве...

какпоступить... наверно надо в том классе который от дерева гуевого отнаследован добавить вектор HTREEITEMов,  а?

и хранить казатели?
как то так, да?


--------------------
– Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил.
PM MAIL   Вверх
Earnest
Дата 24.4.2008, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Зачем? Ты для любого HTREEITEM можешь спросить парента у дерева.
И ни в коем случае не надо в логическую структуру данных (в класс свой) никаких упоминаний о ГУИ.
А вот каждый итем дерева пусть хранит какую то ссылку на логические данные.


--------------------
...
PM   Вверх
Rififi
Дата 24.4.2008, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



создаешь структуру UML, которая содержит список главных сущностей - в данном случе это Класс
далее какая-нибудь функция типа void UML::render(CTreeCtrl&)
которая маппит внутренние данные в контрол
PM MAIL   Вверх
Earnest
Дата 25.4.2008, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Не слушай его, tonchitos,  smile UML-структуры не должны ничего знать о методах своего отображения, а должны просто предоставлять необходимый интерфейс для вывода себя куда угодно. 


--------------------
...
PM   Вверх
tonchitos
Дата 25.4.2008, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 447
Регистрация: 24.2.2007

Репутация: 1
Всего: 40



 smile  не буду ))))

А вообще вот что решили - создаем класс, содержащий инт, строку, и htreeitm.

ну и ясное дело создаем вектор классов...

Каждому инту (индексу соответствует строка и htreeitm)
потом в дерево записываем индексы
тогда по htreeitmу можно получить строку и ид, по ид строку и htreeitm ии тп... То есть работа во всех направлениях...
А элементы в списке базовых классов будут иметь такие же индексы как базовые, но соответствия инлдекса и их htreeitmа не будет...
так мы сможем отличать узел с базовым классом от виртуального узла )))



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


 




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


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

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