Дерево, дерево...
cTreeImageList.Create(IDB_TREEICONS, 16, 5, RGB(0, 0, 255));
cTreeImageList - это CImageList объяви его где-нибудь в классе главного окна, чтобы не пропал;
IDB_TREEICONS - индекс картинки в ресурсах;
16 - высота иконки;
5 - количество иконок в картинке;
RGB(0, 0, 255) - это "прозрачный" цвет.
Эти параметры, у тебя, разумеется, будут свои.
Дальше
MyTree.SetImageList(&cTreeImageList, TVSIL_NORMAL);
Объявил картинки для дерева.
Делаем корень:
HTREEITEM hRoot = MyTree.InsertItem(_T("Root"), 0, 0);
0,0 - это индекс иконок. Первый индекс - иконка невыбранного пункта, второй - выбранного. Если они разные, то при клике на пункт иконки будут автоматически меняться.
Дальше, если нужно добавить веточку к hRoot делай так:
HTREEITEM hBranch1 = MyTree.InsertItem(_T("Branch1"), 1, 1, hRoot);
Если веточку к этой веточке, то соответственно
HTREEITEM hBranch2 = MyTree.InsertItem(_T("Branch2"), 2, 2, hBranch1);
Остальное см. в MSDN.
После того, как TreeCtrl создан, не важно, из какой части программы ты будешь добавлять ветки, сразу, или по мере выполнения программы.
Создаешь в ресурсах картинку размером 16х(16*кол-во иконок) - это будут иконки для дерева, потом делаешь так:
cTreeImageList.Create(IDB_TREEICONS, 16, 5, RGB(0, 0, 255));
cTreeImageList - это CImageList объяви его где-нибудь в классе главного окна, чтобы не пропал;
IDB_TREEICONS - индекс картинки в ресурсах;
16 - высота иконки;
5 - количество иконок в картинке;
RGB(0, 0, 255) - это "прозрачный" цвет.
Эти параметры, у тебя, разумеется, будут свои.
Дальше
MyTree.SetImageList(&cTreeImageList, TVSIL_NORMAL);
Объявил картинки для дерева.
Делаем корень:
HTREEITEM hRoot = MyTree.InsertItem(_T("Root"), 0, 0);
0,0 - это индекс иконок. Первый индекс - иконка невыбранного пункта, второй - выбранного. Если они разные, то при клике на пункт иконки будут автоматически меняться.
Дальше, если нужно добавить веточку к hRoot делай так:
HTREEITEM hBranch1 = MyTree.InsertItem(_T("Branch1"), 1, 1, hRoot);
Если веточку к этой веточке, то соответственно
HTREEITEM hBranch2 = MyTree.InsertItem(_T("Branch2"), 2, 2, hBranch1);
Остальное см. в MSDN.
После того, как TreeCtrl создан, не важно, из какой части программы ты будешь добавлять ветки, сразу, или по мере выполнения программы.
что то не получаеться я имею ввиду не контрол на форме а вот когда мастером создаешьи вібираешь стиль Windows Explorer или как то там ну вобщем оно разбивает документ на 2 рамки и левая рамка у нее класс CTreeView а если TreeView то логично что она дерево должна показівать ... вот... :\
Как в CTreeView создать нормальное дерево с некоторіми пунктами и как во время віполнения проги добавлять пункты в дерево тоестьнасколько я понимаю динамически....? ПОЖАЛУЙСТА ПРИМЕРЧИК а то я лам напишу и ниче не работает впрочем как всегда :(
Тема довольно большая, так что смотри тут:
www.firststeps.ru/mfc/steps/r.php?53
www.firststeps.ru/mfc/steps/r.php?174
www.firststeps.ru/mfc/steps/r.php?175
www.firststeps.ru/mfc/steps/r.php?177
что то не получаеться я имею ввиду не контрол на форме а вот когда мастером создаешьи вібираешь стиль Windows Explorer или как то там ну вобщем оно разбивает документ на 2 рамки и левая рамка у нее класс CTreeView а если TreeView то логично что она дерево должна показівать ... вот... :\
Че-то я туго понял, что и чем там у тебя создается. В любом случае вновь созданное окно дерева выглядит как белый лист, вносить туда пункты и подпункты - дело программера. Попробуй сразу после создания окна дерева сделать MyTreeCtrl.InsertItem("My first item") и посмотреть, что получится.
Че-то я туго понял, что и чем там у тебя создается. В любом случае вновь созданное окно дерева выглядит как белый лист, вносить туда пункты и подпункты - дело программера. Попробуй сразу после создания окна дерева сделать MyTreeCtrl.InsertItem("My first item") и посмотреть, что получится.
вобщем открой стандартній проводник и с лева будет дерево ВОТ ТО что я хочу только когда Wizard'om создаешь и включаешь флажок Windows Explorer View или как то так то создаеться наподобие такого только БЕЗ ДЕРЕВА просто разделитель появляеться....
Тема довольно большая, так что смотри тут:
www.firststeps.ru/mfc/steps/r.php?53
www.firststeps.ru/mfc/steps/r.php?174
www.firststeps.ru/mfc/steps/r.php?175
www.firststeps.ru/mfc/steps/r.php?177
я говрю не о контроле который помещаеться на форму а о ВИДЕ тоесть CTreeView также как и другие как CView, CEditView...
вобщем открой стандартній проводник и с лева будет дерево ВОТ ТО что я хочу только когда Wizard'om создаешь и включаешь флажок Windows Explorer View или как то так то создаеться наподобие такого только БЕЗ ДЕРЕВА просто разделитель появляеться....
Понятно. Дело в том, что стиль IE не подразумевает добавления дерева каталогов. Поинтересуйся, как подключить и отобразить COM-объект Explorer-а.
Понятно. Дело в том, что стиль IE не подразумевает добавления дерева каталогов. Поинтересуйся, как подключить и отобразить COM-объект Explorer-а.
а попроще никак незя а то я ваше ламобот в этом деле....???
а попроще никак незя а то я ваше ламобот в этом деле....???
Боюсь, что нет. Если ищешь легкой жизни, попробуй заюзать CBuilder и поискать готовый компонент. Если найдешь, кидай на форму и дело в шляпе :)
Боюсь, что нет. Если ищешь легкой жизни, попробуй заюзать CBuilder и поискать готовый компонент. Если найдешь, кидай на форму и дело в шляпе :)
эх ... тогда можешь расссказать поподробнее или сссылочку по этому поводу дать??
эх ... тогда можешь расссказать поподробнее или сссылочку по этому поводу дать??
Увы. Никогда не возникало необходимости. Один раз понадобилось меню для выбора папки, ну так я его ручками слабал. Но это далеко до Проводника, показывает только папки, операций с файлами не поддерживает.
Пошарься по Инету, зайди на http://msdn.microsoft.com/visualc/community/ - хороший ресурс, но англоязычный.
Увы. Никогда не возникало необходимости. Один раз понадобилось меню для выбора папки, ну так я его ручками слабал. Но это далеко до Проводника, показывает только папки, операций с файлами не поддерживает.
Пошарься по Инету, зайди на http://msdn.microsoft.com/visualc/community/ - хороший ресурс, но англоязычный.
а если сделать из этого вида FormView и кинуть туда просто контрол дерева...
а если сделать из этого вида FormView и кинуть туда просто контрол дерева...
В данном конкретном случае лучше было бы использовать CSplitterWnd. Да вообще контрол на окно выкинуть не проблема. Проблема его заполнить.
В данном конкретном случае лучше было бы использовать CSplitterWnd. Да вообще контрол на окно выкинуть не проблема. Проблема его заполнить.
ну у меня уже есть сам разделиткль который делит вид пополам ...