在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
// 相关定义 Type TListData = Record FileName: String; Percent: Integer; End; PListData = ^TListData; // 需要Use CommCtrl Function GetSubItemRect(handle, ItemsIndex, SubIndex: Integer): TRect; Begin ListView_GetSubItemRect(handle, ItemsIndex, SubIndex, 0, @Result); End; Procedure TFormMain.lvw_listCustomDrawSubItem(Sender: TCustomListView; Item: TListItem; SubItem: Integer; State: TCustomDrawState; Var DefaultDraw: Boolean); Var l_Rect: TRect; l_intPercent: Integer; Begin If SubItem = 3 Then Begin If Item.Data = Nil Then Exit; l_intPercent := PListData(Item.Data).Percent; // 获取ListView子项的Rect l_Rect := GetSubItemRect(Item.handle, Item.Index, SubItem); // 画一条外边框 InflateRect(l_Rect, -1, -1); Sender.Canvas.Brush.Color := clBlack; Sender.Canvas.FrameRect(l_Rect); // 先填充底色 InflateRect(l_Rect, -1, -1); Sender.Canvas.Brush.Color := lvw_list.Color; Sender.Canvas.FillRect(l_Rect); // 再根据进度画出完成区域 If l_intPercent = 100 Then Sender.Canvas.Brush.Color := clGreen Else Sender.Canvas.Brush.Color := clPurple; l_Rect.Right := l_Rect.Left + Floor((l_Rect.Right - l_Rect.Left) * l_intPercent / 100); Sender.Canvas.FillRect(l_Rect); // 恢复笔刷 Sender.Canvas.Brush.Color := lvw_list.Color; // 关键的一句,屏蔽系统自绘过程 DefaultDraw := False; End; End; // 本文来自CSDN博客,转载请标明出处:http: //blog.csdn.net/kwbin/archive/2008/11/26/3381317.aspx
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论