Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Visual 2005] Tree Control 
:(
    Опции темы
Palladin
Дата 3.5.2007, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

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



Приветствую всех, давно тут не был ужеsmile
Вообщем вопрос наверное самый нубский из всех на этом форуме, но все же:
Вообщем учу MFC, никак немогу сделать этот Tree Control, короче в нете полазил пару часов ничего нет из того что мне надо+здесь на форуме поиск давал таже беда
Короче вот вопрос:
Как создать дерево в Tree Control ???
никакую программу писать ненадо, просто скажите какой функцией добавить в триконтрол запись, сделать к ней под записи и т.д.
А то у мя тут методичка лежит с "готовой" программой, проект которой  к сожалению не компилится, да и сама программа не пашетsmile

P.S. Прошу ответ сделать таким(к примеру): кидаеш на форму Tree Control, потом создаеш переменную в ласвизарде такого-то типа, потом то-то
плз хелп, запарился уже
и ещё ктонить знает ссылку с которой можно скачать книгу по MFC чтоб было норм все написано???


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
zkv
Дата 4.5.2007, 00:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 16
Всего: 92



Цитата(RooR @  3.5.2007,  23:07 Найти цитируемый пост)
кидаеш на форму Tree Control, потом создаеш переменную в ласвизарде такого-то типа,

потом в OnInitDialog() пишешь типа (это самое простое, вариаций много  smile):
Код

    HTREEITEM htRoot = m_tree.InsertItem( "Root" );
    m_tree.InsertItem( "Leaf1", htRoot );
    m_tree.InsertItem( "Leaf2", htRoot );

потом в Визарде вешаешь обработчик на TVN_SELCHANGED, в нем пишешь:
Код

    LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
    CString str = "Old item is \"";
    str += m_tree.GetItemText( pNMTreeView->itemOld.hItem );
    str += "\",\nNew item is \"";
    str += m_tree.GetItemText( pNMTreeView->itemNew.hItem );
    str += "\"";
    AfxMessageBox( str );
    *pResult = 0;


да, в редакторе сразу установи стили контрола Has Buttons, Has Lines, Lines at root в true

Подробности смотрим, как всегда, в МСДН smile
PM MAIL   Вверх
Palladin
Дата 4.5.2007, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

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



К сожаоению ошибки, вот их список:
Код

...\laba 7dlg.cpp(103) : error C2228: left of '.InsertItem' must have class/struct/union
        type is ''unknown-type''
...\laba 7dlg.cpp(104) : error C2664: 'HTREEITEM CTreeCtrl::InsertItem(LPCTSTR,HTREEITEM,HTREEITEM)' : cannot convert parameter 1 from 'const char [6]' to 'LPCTSTR'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
...\laba 7dlg.cpp(105) : error C2664: 'HTREEITEM CTreeCtrl::InsertItem(LPCTSTR,HTREEITEM,HTREEITEM)' : cannot convert parameter 1 from 'const char [6]' to 'LPCTSTR'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
...\laba 7dlg.cpp(170) : error C2440: 'initializing' : cannot convert from 'const char [14]' to 'ATL::CStringT<BaseType,StringTraits>'
        with
        [
            BaseType=wchar_t,
            StringTraits=StrTraitMFC<wchar_t>
        ]
        Constructor for class 'ATL::CStringT<BaseType,StringTraits>' is declared 'explicit'
        with
        [
            BaseType=wchar_t,
            StringTraits=StrTraitMFC<wchar_t>
        ]
...\laba 7dlg.cpp(171) : error C2228: left of '.GetItemText' must have class/struct/union
        type is ''unknown-type''
...\laba 7dlg.cpp(173) : error C2228: left of '.GetItemText' must have class/struct/union
        type is ''unknown-type''


запарился уже напиши такой код  примеру:
Короче в тривью какиенить записи(штук 5, ну и с подпунктами) при нажатии на какуюнить выводит чтонить в editbox


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Greeen
Дата 4.5.2007, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 10
Всего: 18



Пример работы с CTreeCtrl 1
Пример работы с CTreeCtrl 2

Это сообщение отредактировал(а) Greeen - 4.5.2007, 15:43


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
zkv
Дата 4.5.2007, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 16
Всего: 92



RooR, у тебя m_tree - переменая созданная в визарде типа CTreeCtrl ? Какой то тип не правильный задал.
Цитата(RooR @  4.5.2007,  15:33 Найти цитируемый пост)
при нажатии на какуюнить выводит чтонить в editbox

надо просто заменить строку:
AfxMessageBox( str );
на:
m_edit.SetWindowText(str);
где m_edit - переменная (control variable) едит-бокса

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


 




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


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

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