怎样在ListView中嵌入进度条

yuyipj 2004-06-16 06:16:00
class TForm1 : public TForm{
TProgressBar *ProgressBar1;
TListView *lv;
void __fastcall Button1Click(TObject *Sender);
void __fastcall MyProgressClick(TObject *Sender);
void __fastcall lvCustomDrawSubItem(TCustomListView *Sender,
TListItem *Item, int SubItem, TCustomDrawState State,
bool &DefaultDraw);
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
pitem=lv->Items->Add();
pitem->Caption="TestAddItem";
pbar=new TsuiProgressBar(lv);
pbar->Parent=lv;
pitem->Data=pbar;
pbar->Top=pitem->Top+1;
pbar->Left=pitem->Left+lv->Column[0]->Width-2;
pbar->Width=lv->Column[1]->Width;
pbar->OnClick=MyProgressClick;

}
void __fastcall TForm1::MyProgressClick(TObject *Sender)
{

TProgressBar * pbar=NULL;
TListItem *pitem;
pbar=(TsuiProgressBar *)Sender;
pitem=lv->GetItemAt(pbar->Left,pbar->Top);
lv->Selected=pitem;
lv->SetFocus();


}
void __fastcall TForm1::lvCustomDrawSubItem(TCustomListView *Sender,
TListItem *Item, int SubItem, TCustomDrawState State,
bool &DefaultDraw)
{

if(SubItem==1){
pbar=(TProgressBar * )Item->Data;
pbar->Top=Item->Top+1;
pbar->Left=Item->Left+lv->Column[0]->Width-2;
pbar->Width=lv->Column[1]->Width;
this->Caption="Column1:width->"+IntToStr(lv->Column[1]->Width);
DefaultDraw=false;

}

}
我的这个方法可以嵌入进度条,但是当你拖动列头的边界来改变列的宽度时,进度条的宽度不能随着列宽同步变化,总会慢点
...全文
119 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧