TListView重绘问题
void __fastcall TMainForm::ListView1CustomDrawSubItem(
TCustomListView *Sender, TListItem *Item, int SubItem,
TCustomDrawState State, bool &DefaultDraw)
{
if(Item->SubItems->Count < 13)
return;
if(Item->SubItems->Strings[12] != "正常")
{
Sender->Canvas->Brush->Color=clSkyBlue;
Sender->Canvas->Font->Color=clWhite;
}
else
{
Sender->Canvas->Brush->Color=clWhite;
Sender->Canvas->Font->Color=clBlack;
}
}
上面的代码在执行时每次只刷新了几个子项的颜色而不是涮洗整行颜色,而且第一列从来不被刷新颜色?可鼠标选中后再涮新就是整行颜色变化。
此外如何能重绘TListView的表头?
TCustomListView *Sender, TListItem *Item, int SubItem,
TCustomDrawState State, bool &DefaultDraw)
{
if(Item->SubItems->Count < 13)
return;
if(Item->SubItems->Strings[12] != "正常")
{
Sender->Canvas->Brush->Color=clSkyBlue;
Sender->Canvas->Font->Color=clWhite;
}
else
{
Sender->Canvas->Brush->Color=clWhite;
Sender->Canvas->Font->Color=clBlack;
}
}
上面的代码在执行时每次只刷新了几个子项的颜色而不是涮洗整行颜色,而且第一列从来不被刷新颜色?可鼠标选中后再涮新就是整行颜色变化。
此外如何能重绘TListView的表头?
作者: bj_leo_2000 发布时间: 2011-06-15
改用VT吧,我几乎不再已使用TListView了。
作者: Jonix 发布时间: 2011-06-15