![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в заголовок столбца вставить прозрачную картику?
RTWolf © (2004-05-19 10:41:00)Когда я использую прозрачную картинку то она рисуется на черном фоне. Этот вопрос можно решить двумя способами, но у меня не один не работает:
1) Можно всеже както помучатся и подобрав нужные константы сделать это
2) А можно и так: определяем цвет фона заголовка столбца и рисуем на временной канве на этом фоне всю картинку, а потом уже приделываем к списку.
А кстати забыл сказать, если я использую средства KOL то все отлично, но почемутовместе с картинкой в заголовке, появляется и картинка в самих Item'ах. А если убрать картинку в Итеме то надпись получается смещенной. Это не есть хорошо!
Я делаю так:
У меня тут сразу же с сортировкой
procedure TWinStatView.SetColumnBitmap( LV: PControl; SortAscend: Boolean; ColumnIdx: Integer );
var
HdItem: THdItem;
i: Integer;
begin
for i := 0 to LV.LVColCount-1 do begin
HdItem.Mask := HDI_FORMAT;
SendMessage( GetDlgItem( LV.Handle, 0 ), HDM_GETITEM, I, Longint( @HdItem ) );
HdItem.Mask := HDI_BITMAP or HDI_FORMAT;
if i = ColumnIdx then begin
if SortAscend then HdItem.hbm := LoadBitmap( hInstance, 'LV_DOWN')
else Hditem.hbm := LoadBitmap( hInstance, 'LV_UP');
HdItem.fmt := HdItem.fmt or HDF_BITMAP {or HDF_BITMAP_ON_RIGHT};
end else begin
HdItem.hbm := LoadBitmap( hInstance, 'LV_DOWN');
HdItem.fmt := HdItem.fmt and not ( HDF_BITMAP {or HDF_BITMAP_ON_RIGHT});
end;
SendMessage( GetDlgItem( LV.Handle, 0 ), HDM_SETITEM, I, Longint( @HdItem ) );
end;
end;
AlexZ_CRC (2004-05-22 20:03:00) [1]R 255
G 0
B 255
Системный прозрачный цвет, если пригодиться ;)
SPeller (2004-05-22 15:40:00) [2]Прозрачность - это когда берется цвет фона и заменяют им определенный цвет в картинке.
RTWolf (2004-05-22 13:02:00) [3]Все бы хоршо на WinXP когда стоит классическая тема раб. стола, там цвета совпадают с системными, но если стоит любая другая тема то цвет отличается
Gandalf (2004-05-21 10:35:00) [4]Это один из системных цветов - какой точно не помню... но их не так много.
RTWolf (2004-05-21 09:55:00) [5]А как узнать цвет фона заголовка?
Bezols (2004-05-19 19:29:00) [6]а ты используй тогда картинку с фоном, и установить цвет прозрачности как цвет фона
RTWolf (2004-05-19 14:58:00) [7]Я так и делал, но результат не тот
Bezols (2004-05-19 11:38:00) [8]А ты картинку сначала в ImageList загрузи, а потом навежи его к ListView
у ImageLista есть такая штука
ImageList2.AddMasked(BMP.Handle, clFuchsia);