|
|
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
хочу добавлять узлы примерно так: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2006, 18:30 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
Дьякхочу добавлять узлы примерно так: Код: plaintext HTREEITEM - это структура, а CString - это класс, причем не содержащий в себе необходимых данных для сохранения информации о узле, как Вы себе это представляете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 08:06 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
а каких типов должны быть usel и parent? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 08:15 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
я исходил из чего: код типа этого отлично работает: Код: plaintext 1. 2. 3. 4. 5. сформировал в виде типа CString, а оно не работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 08:23 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
Дьяка каких типов должны быть usel и parent? HTREEITEM - описатель узла дерева, MSDN рулит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 08:28 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
Дьякя исходил из чего: код типа этого отлично работает: Код: plaintext 1. 2. 3. 4. 5. сформировал в виде типа CString, а оно не работает логично ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 08:29 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
В том примере, который я приводил, аналогично и в этом, делается так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. у меня то заранее неизвестно СКОЛЬКО будет узлов и по сколько узлов из них ещё будет исходить. то есть каждый раз мне нужно вместо hPA и hWA формировать свои уникальные значения. напрашивается сделать безразмерный массив. подскажите если знаете как его объявить? (если можно конкретный пример) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 15:00 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
не вижу смысла. Есть конкретные не изменяемые (Root) узлы, формирование которых возложено на программу? Если да, то достаточно просто иметь их описатели (HTREEITEM) и рулить child-узлами через них. Если же нет, то придется создавать класс (или не класс) для хранения информации о дереве. Но я бы посоветовал класс-контейнер от CObject, т.к. это удобно и можно записывать на диск через Serialize. -------------------------------------------------------------- Don't worry - wear Huggies ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 15:24 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
Да, есть один узел корневой. вложенность то может быть разной. а как рулить child-узлами через корневой узел? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 15:29 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
ДьякДа, есть один узел корневой. вложенность то может быть разной. а как рулить child-узлами через корневой узел? здесь все завист от логики программы, например можно посчитать их, найти последний или первый из них, узнать если у них свои child-ы, много всего.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 15:32 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
вот возьмем например первый пример. Код: plaintext 1. 2. 3. 4. 5. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 15:33 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
Дьяквот возьмем например первый пример. Код: plaintext 1. 2. 3. 4. 5. Код: plaintext ты же не собираешся добавлять хаотично и куда бог пошлет, у программы должна быть логик, а иначе ты не сможешь управлять деревом. Эти описатели носят временный характер, они нужны, чтобы вставить узел и все, солить их не надо, а дальше управление child-узлами логично переложить на их parent-узел, который будет, в силу логики программы, опять же, их контроллировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 15:41 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
теперь о логике программы.... логика такая. есть CComboBox, CEdit, CTreeCtrl. сделаем так: b |_ b1 |_b12 в TreeCtrl на первоначальном этапе есть только корневой узел ("b"). (в комбобокс этот "b" тоже есть) в комбобокс будем выбирать узел ИЗ которого исходит добавляемый. вобщем вводим в эдит какую-то запись (b1). выбираем пока единственный возможный выриант в комбо:"b". жмем кнопку ДОБАВИТЬ, и строка из эдита ("b1") добавляется в комбо и в дерево (из корневого узла "b"). Далее нам надо добавить узел, исходящий уже из b1. вводим "b12", выбираем в комбо "b1", жмем ДОБАВИТЬ и b12 встает на нужное место и добавляется в комбо..... вот и вся логика. что бы добавить b12, надо знать это самое а2: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 15:51 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
некрасиво сместился рисунок... нарисую так: b - b1 - b12 (b12 исходит не из b, а из b1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 15:53 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
Дьяктеперь о логике программы.... логика такая. есть CComboBox, CEdit, CTreeCtrl. сделаем так: b |_ b1 |_b12 в TreeCtrl на первоначальном этапе есть только корневой узел ("b"). (в комбобокс этот "b" тоже есть) в комбобокс будем выбирать узел ИЗ которого исходит добавляемый. вобщем вводим в эдит какую-то запись (b1). выбираем пока единственный возможный выриант в комбо:"b". жмем кнопку ДОБАВИТЬ, и строка из эдита ("b1") добавляется в комбо и в дерево (из корневого узла "b"). Далее нам надо добавить узел, исходящий уже из b1. вводим "b12", выбираем в комбо "b1", жмем ДОБАВИТЬ и b12 встает на нужное место и добавляется в комбо..... вот и вся логика. что бы добавить b12, надо знать это самое а2: Код: plaintext не корень, а родительский root, а их перечень у тебя в CComboBox'e (если я правильно понял), судя по тому что они все содержат child-item'ы, можно простым перебором пройти все узлы у которых есть child'ы и имена (+ последовательность, как вариант, если нет сортировки) совпадают с item'ом из CComboBox'а - это достаточное условие что бы считать item дерева - root item'ом его child'ов. Так же можно придумать и вносить в ItemData для каждого из узлов и не-узлов спец. коды которые будут определять их принадлежность к тому или иному виду или используюя картинки, как вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 15:59 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
вначале мы указываем а1 явно: Код: plaintext а как в остальных случаях быть? например когда вводим b1, в ComboBox добавляем это b1, строку из эдита тоже без проблемм переносим в дерево, но как нам а2 то получить??? как я напишу подобную строку, где вместо usel подставлю a2 ??? Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 16:17 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
Cerebrumне корень, а родительский root, а их перечень у тебя в CComboBox'e (если я правильно понял), судя по тому что они все содержат child-item'ы, можно простым перебором пройти все узлы у которых есть child'ы и имена (+ последовательность, как вариант, если нет сортировки) совпадают с item'ом из CComboBox'а - это достаточное условие что бы считать item дерева - root item'ом его child'ов. Так же можно придумать и вносить в ItemData для каждого из узлов и не-узлов спец. коды которые будут определять их принадлежность к тому или иному виду или используюя картинки, как вариант это всё так и есть, но эти уникальные значения то всё равно нужны! (я про а2, а2 и т.д.) может хранить в комбо 2 столбца?..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 16:29 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
Дьяк Cerebrumне корень, а родительский root, а их перечень у тебя в CComboBox'e (если я правильно понял), судя по тому что они все содержат child-item'ы, можно простым перебором пройти все узлы у которых есть child'ы и имена (+ последовательность, как вариант, если нет сортировки) совпадают с item'ом из CComboBox'а - это достаточное условие что бы считать item дерева - root item'ом его child'ов. Так же можно придумать и вносить в ItemData для каждого из узлов и не-узлов спец. коды которые будут определять их принадлежность к тому или иному виду или используюя картинки, как вариант это всё так и есть, но эти уникальные значения то всё равно нужны! (я про а2, а2 и т.д.) может хранить в комбо 2 столбца?..... не вижу смысла, лишняя нагрузка на графику, уж лучше класс-контейнер описателей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 16:33 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
то есть создать контейнер, в который бросать эти уникальные значения? а как ещё это можно сделать? (в смысле без контейнера) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 16:38 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
кстати сказать, а как создать контейнер со значениями типа HTREEITEM ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 16:41 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
Дьяккстати сказать, а как создать контейнер со значениями типа HTREEITEM ? класс-контейнер производить лучше от СObject, например Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 16:54 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
ааааа, а точно эта проблемма проще не решается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 17:02 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
в смысле только через контейнер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 17:08 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
Дьякааааа, а точно эта проблемма проще не решается? я не настаиваю, но столько преимуществ в обмен на немного кода, имхо, нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 17:08 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
а я вот тут хитрую вещь видел: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 17:09 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
Дьяка я вот тут хитрую вещь видел: Код: plaintext это у кого такой метод, у CTreeCtrl? или это что-то самопальное, в производном классе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 17:13 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 18:36 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
а приведите, пожалуйста, конкретный пример добавления этих уникальных значений! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2006, 07:00 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
Дьяк, для начала: www.yandex.ru/yandsearch?rpt=rad&text=HTREEITEM www.doc.mpv.ru/steps/mfc/steps/53.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2006, 09:53 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
про HTREEITEM в яндексе я читал ещё в самом начале, только не нашел ответ на свой вопрос. поэтому обратился в этот форум. а что касается второй ссылки, она у меня не открывается, пишет невозможно отобразить страницу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2006, 10:42 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
Дьяк, вот тут то, что тебе надо: http://www.codeproject.com/string/cstringmgmt.asp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2006, 18:54 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
а как объявить TVINSERTITEMSTRUCT ? ругается что не знает такого Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2006, 17:30 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
подобный текст конечно ошибок не выдает: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: plaintext 1. Код: plaintext Искренне не понимаю как это сделать. догадываюсь что это легко, только пока решения проблеммы не вижу.....может все таки сможет ктонибудь четко написать как вообще это сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2006, 17:56 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
ну а как вы вообще древовидный список создаете? из заранее известных узлов что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 10:10 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
Как обычно , из таблицы какой нить БД со структурой Parent, Child. У тебя не должно быть проблем. Nodes "сы ты правильно определешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 10:35 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
> как объявить TVINSERTITEMSTRUCT #include <commctrl.h> и будет Вам счастье. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 11:52 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
неа, всё-равно на этой строке выдает ошибку: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 13:32 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
А MFC вы вообще объявили или как ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 14:32 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 14:54 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
Уже не смешно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 14:55 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
мне тоже не смешно. или я какую-то глупость несу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 15:04 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
#include "afxwin.h" у меня подключен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 15:05 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
объясните что я не так сделал! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 15:27 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
значит Вы не знаете почему у меня не работает? или я спорол какую-то глупость? ну хоть как-нибудь отреагируйте, а то, честное слово - не знаю что и думать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 18:41 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
подтолкните в нужном направлении! плиззз!!!!! эта затянувшаяся тема уже порядком достала, но и отступиться от неё не могу пока она не решится... ну неужели здесь нет человека который бы это знал???! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 18:51 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
Ты уже раз 20 сам ответил на свои вопросы. Может стоить собраться, а не заниматься моральным онанизмом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 19:14 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
НУ ДЫК ПРОГРАММА ТО НЕ РАБОТАЕТ! Ё-МОЁ!!! ЧЕ С НЕЙ ДЕЛАТЬ ТО???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 19:50 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
М-дя :) Дьяк, а как ты предполагаешь, что у тебя будет храниться все строками, они что, повторяющимися не могут быть? Я рекомендую завести массив типа такого: class CInfoTables { CString TableName; LONG Code; // или что там в качестве индекса? LONG CodeParent; HTREEITEM Item; } Далее, когда ты делаешь InsertItem, не поленись записать в массив идентификатор итема, а в SetItemData - индекс этого массива. И у тебя будет однозначная связь между строками и итемами, причем не по совпадению строки, а по ее индеску в БД. Вариант, сразу скажу, несколько корявый, поскольку CArray жрет много памяти. Но сама идея состоит в том, что связи эти тебе так или иначе придется построить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 20:01 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
Забыл написать: CArray<CInfoTables> m_arr; m_arr .Item = m_tree.InsertItem("лалала", parent); m_tree.SetItemData(m_arr.Item, i); Пробуй! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 20:04 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
Круто здесь тэги работают ))) m_arr[k].Item = m_tree.InsertItem("лалала", parent); m_tree.SetItemData(m_arr[k].Item, k); Раньше было написано с i, а вместо индеска наклонный шрифт получился ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 20:08 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
мысль понял, спасибо! а что это кстати за строчка: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2006, 16:04 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
Дьякмысль понял, спасибо! а что это кстати за строчка: Код: plaintext добавь в stdafx.h #include "afxtempl.h" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2006, 16:45 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
теперь на эту же строчку выдается две ошибки Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2006, 16:53 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
(класс объявлен как CMyTree) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2006, 16:54 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
Дьяк(класс объявлен как CMyTree) а там где ты объявляшь этот array, виден твой CMyTree ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2006, 17:04 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
Да, объявлены в одном файле Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2006, 17:13 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
А может быть есть способ объявить m_arr как то иначе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2006, 18:18 |
|
||
|
вскользь о CTreeCtrl в VC
|
|||
|---|---|---|---|
|
#18+
как можно исправить эти ошибки или обойти их? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2006, 06:04 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2030963]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
186ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
86ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 552ms |

| 0 / 0 |
