Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > 2 иконки в Treeview


Автор: efedron 18.4.2005, 15:56
Вопрос в следующем: можно ли напроств каждой строчки в TreeView вствлять не по одной картинке, а по две?

Автор: Naghual 18.4.2005, 17:03
Стандартно - нет.

Автор: efedron 20.4.2005, 11:08
т.е. в крайнем случае придется "рисовать" их самому рядом со стандартной картинкой? это может оказаться проблематичным..smile

Автор: ~FoX~ 20.4.2005, 14:39
Можно хоть десять, есть у него событие ака DrawItem или что то в этом роде, при прорисовки итема перехватываем его Canvas и рисуем на нем все что угодно. Дальше отступаем немножко от рисунков и при помощи TextOut выводим надпись итема, только сия функция требует не объект canvas, а его хэндл по моему.
В общем в делфи это выглядит примерно так:

Код

begin
  with (Control as TTreeView).Canvas do
  begin
    FillRect(Rect);
    Bitmap := TBitmap.Create;
    ImageList1.GetBitmap(4, Bitmap);
    Offset := 0;
    if Bitmap <> nil then
    begin
      BMPRect := Bounds(Rect.Left+2, Rect.Top+2, (Rect.Bottom-Rect.Top-2), Rect.Bottom-Rect.Top-2);
      BrushCopy(BMPRect,Bitmap, Bounds(0, 0, Bitmap.Width, Bitmap.Height),
      Bitmap.Canvas.Pixels[0, Bitmap.Height-1]);
      Offset := (Rect.Bottom-Rect.Top+1)+3;
    end;
    TextOut(Rect.Left+Offset, Rect.Top, ListBox1.Items[index]);
    Bitmap.Free;
  end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)