Ошибка затенения столбца ListView

Я хочу добавить цветную заливку для выбранного столбца.

Рисование предметов, которые я делаю в ListView1CustomDrawItem обработчик:

Sender->Canvas->Brush->Color = RGB(200, 200, 255);

if(Item->Selected)
{
Sender->Canvas->Brush->Color = (Sender->Focused() ? clBlue : clRed);
}

Sender->Canvas->Lock();
Sender->Canvas->FillRect(Item->DisplayRect(drBounds));
Sender->Canvas->TextOut(Item->DisplayRect(drLabel).Left, Item->DisplayRect(drLabel).Top + 1, Item->Caption);
Sender->Canvas->Unlock();
DefaultDraw = false;

И если я правильно понимаю, рисование выбранного столбца я должен сделать в ListView1CustomDraw обработчик:

TRect rect;
rect = ARect;
rect.Right = Sender->Column[0]->Width;

Sender->Canvas->Brush->Color = RGB(245, 245, 245);Sender->Canvas->Lock();
Sender->Canvas->FillRect(rect);
Sender->Canvas->Unlock();

И результат:

http://i63.fastpic.ru/big/2014/1120/ba/e5b6d30eb9e05bbe3661aed295c28aba.jpg

Это также можно увидеть на видео:
http://youtu.be/XGXpWCUtGbU

Как вы можете видеть, когда я перемещаю (не щелкаю) курсор над элементами, они перерисовываются неправильно. Но предметы должны быть нарисованы над колонкой цветным прямоугольником.
Как я могу это исправить?

0

Решение

Вы должны справиться с OnCustomDrawSubItem событие также. OnCustomDrawItem Событие относится только к первому столбцу.

0

Другие решения


По вопросам рекламы [email protected]