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

 
Нужно впихнуть TreeView в ComboBox
Гость_DoS
Отправлено: 30.09.2003, 22:15


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







Появилась необходимость впихнуть TreeView в ComboBox. да и вообще интересует техника отображения одного контрола в другом! подскажите пожалста в какую сторону копать? (доки какие-нить ссылки т.д.)
Admin
Отправлено: 01.10.2003, 11:58


Владимир

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



Смотря что нужно.

Если связать ComboBox с чем либо, например TreeView,
то это через AddObject():

ComboBox1->Items->AddObject("MyTreeView",(TObject*)TreeView1);

Если хотите прорисовать что-либо в ComboBox, то
смотрите события onDrawItem и onMeasureItem компонента ComboBox.
Не забудьте установить свойство Style в csOwnerDrawVariable.
Что-то типа:

CODE
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1DrawItem(TWinControl *Control, int Index,
TRect &Rect, TOwnerDrawState State)
{
// ComboBox1->Canvas->FillRect(Rect);
Rect = TreeView1->Canvas->ClipRect; // *****
ComboBox1->Canvas->CopyRect(Rect,TreeView1->Canvas,TreeView1->Canvas->ClipRect);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1MeasureItem(TWinControl *Control,
int Index, int &Height)
{
Height = TreeView1->Height;
}
//---------------------------------------------------------------------------




Если нужно вообще впихнуть один контрол в другой — создайте
один в другом. Как на форме динамически:

CODE


TTreeView* Tv = new TTreeView(Form1);
Tv->Parent = Form1;
Tv->Left = 50;
Tv->Top = 10;
Tv->Width = 300;
Tv->Height = 80;
Tv->Items->AddChild(NULL,"MyFirstNode");


Так что смотрите что конкретно из этого требуется.

Отредактировано Admin — 01/10/2003, 13:02
Гость_DoS
Отправлено: 02.10.2003, 09:10


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







спасибо за исчерпывающий ответ! очень помогло! буду ковырять
Еще раз спасибо

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