C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Работа с измененным компонентом TTreeView, Как работать с TTreeView с CheckBox
Riedle
Отправлено: 04.11.2003, 20:11


Ученик-кочегар

Группа: Участник
Сообщений: 9



Привет Всем!
Подскажите пожалуйста, кто знает !
Я через SetWindowLong(); установил TVS_CHECKBOXES.
Теперь TTreeView выглядит с CheckBox!

Подскажите, пожалуйста, а как просмотреть какие узлы выделены и как с них получить текст и узнать их индекс.

Заранее спасибо!
** pasha
Отправлено: 04.11.2003, 20:25


Не зарегистрирован







CODE


TTreeNode* Tn = TreeView1->Selected; // выделенный узел
AnsiString s =  TreeView1->Selected->Text; // его текст

Riedle
Отправлено: 05.11.2003, 16:47


Ученик-кочегар

Группа: Участник
Сообщений: 9



Спасибо!

А как мне программно подчеркнуть узлы ?

Riedle
Отправлено: 06.11.2003, 16:31


Ученик-кочегар

Группа: Участник
Сообщений: 9




Народ smile.gif , неужели никто не знает как узлы программно подчеркнуть ?

Заранее благодарен!
Admin
Отправлено: 06.11.2003, 21:11


Владимир

Группа: Администратор
Сообщений: 1190



Установите свойство HotTrack = true;
Будут выделятся 'горячие' узлы и ветки.
---

Или смотрите событие CustomDrawItem,
в нем и делайте что хотите.
(в Help к этому событию есть пример, посмотрите)

CODE

// выделяем цветом все узлы
void __fastcall TForm1::TreeView1CustomDrawItem(TCustomTreeView *Sender,
TTreeNode *Node, TCustomDrawState State, bool &DefaultDraw)
{
if (Node->HasChildren)
{
TreeView1->Canvas->Brush->Color = clYellow;
}
}


CODE

// подчеркиваем все узлы
void __fastcall TForm1::TreeView1CustomDrawItem(TCustomTreeView *Sender,
TTreeNode *Node, TCustomDrawState State, bool &DefaultDraw)
{
if (Node->HasChildren)
{
TreeView1->Canvas->Font->Style.Clear();
TreeView1->Canvas->Font->Style = TFontStyles()<<fsUnderline;
}
}
//----------------------------------------


Отредактировано Admin — 06/11/2003, 22:18

Вернуться в Вопросы программирования в C++Builder