Форум: "Начинающим";
Текущий архив: 2016.07.24;
Скачать: [xml.tar.bz2];
ВнизКак в ListView закрасить текст строки другим цветом WinApi? Найти похожие ветки
← →
Max (2014-11-22 21:35) [0]Допустим, в ListView 6 строк, выделена 5 строка.
Как в ListView закрасить текст строки №2 другим цветом (WinApi)?
← →
junglecat © (2014-11-22 23:35) [1]лови WM_NOTIFY у родительского окна, в нем code = NM_CUSTOMDRAW, в нем dwDrawStage = CDDS_ITEMPREPAINT и ставь SetTextColor
← →
M.A. (2014-11-23 00:31) [2]
> junglecat © (22.11.14 23:35) [1]
> лови WM_NOTIFY у родительского окна, в нем code = NM_CUSTOMDRAW,
> в нем dwDrawStage = CDDS_ITEMPREPAINT и ставь SetTextColorWM_NOTIFY:
begin
if PNMHDR(lParam).hwndFrom = LV then
case PNMHDR(lParam).code of
NM_CUSTOMDRAW:
begin
//Не совсем понял
end;
А можно подробнее про dwDrawStage = CDDS_ITEMPREPAINT?
← →
ListView.Canvas (2014-11-23 08:52) [3]А без WinAPI не подойдет?
with ListView1.Canvas.Brush do
begin
if ... then // item.itemindex
Color:= clGreen;
end;
← →
junglecat © (2014-11-23 12:44) [4]> подробнее про dwDrawStage = CDDS_ITEMPREPAINT
var
cd: TNMCustomDraw;
cd := TNMCustomDraw(lParam);
if cd.dwDrawStage = CDDS_ITEMPREPAINT then begin
if cd.dwItemSpec = 5 then
SetTextColor(cd.hdc, $0000FF)
else
SetTextColor(cd.hdc, COLOR_WINDOW_TEXT);
end;
← →
Max (2014-11-23 13:25) [5]
> ListView.Canvas (23.11.14 08:52) [3]
> А без WinAPI не подойдет?
Чистый Api.
> junglecat © (23.11.14 12:44) [4]
Спасибо.
Чо-то никак. Есть еще варианты?
← →
Max (2014-11-23 13:39) [6]Разобрался, работает.
junglecat-Спасибо за помощь.
NM_CUSTOMDRAW:
begin
case PNMLVCustomDraw(LParam).nmcd.dwDrawStage of
CDDS_PREPAINT: result:=CDRF_NOTIFYITEMDRAW;
CDDS_ITEMPREPAINT:
begin
if PNMLVCustomDraw(LParam).nmcd.dwItemSpec = Nomer then
PNMLVCustomDraw(LParam).clrText := 16711680
else
PNMLVCUSTOMDRAW(LParam).clrText := 0 ;
end;
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2016.07.24;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c