菜鸟的学习笔记,如果对你有用最好。高手请无视。
ListView 要开 Doublebuffer

void __fastcall TForm1::ListView1CustomDrawSubItem(TCustomListView *Sender, TListItem *Item,
int SubItem, TCustomDrawState State, bool &DefaultDraw)
{
DefaultDraw=true;
int lef=0;
TRect R = Item->DisplayRect(drBounds);
TCustomListView * s = Sender;
for(int i=0;i<2;i++)
lef += s->Column[i]->Width+1;
R.bottom-=1;
R.Left+=lef;
String text=Item->SubItems->Strings[1];
for(int i=0;i<ListView1->Items->Count;i++) //找最大值
{
if (ListView1->Items->Item[i]->SubItems->Strings[1].ToInt()>maxv)
maxv=ListView1->Items->Item[i]->SubItems->Strings[1].ToInt();
}
float p=(float)(Item->SubItems->Strings[1].ToInt())/(float)maxv;
p*= s->Column[2]->Width;
R.right= R.left+floor(p+0.5)-30;
if(R.right<=R.Le

这篇博客是关于C++ Builder中如何在ListView组件上实现自绘条形图的菜鸟学习笔记。内容包括开启ListView的Doublebuffer特性,以优化显示效果。

540

被折叠的 条评论
为什么被折叠?



