Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1260336
  • 博文数量: 788
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 7005
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-19 15:52
文章存档

2017年(81)

2011年(1)

2009年(369)

2008年(337)

分类:

2008-09-16 14:57:51



如何在   listbox中每行中添加图标

procedure   TfrmMain.lbLanmuDrawItem(Control:   TWinControl;   Index:   Integer;  
      Rect:   TRect;   State:   TOwnerDrawState);  
   
  begin  
      with   Control   as   TListBox   do   begin  
          Canvas.FillRect(Rect);  
          ilType.Draw(Canvas,Rect.Left,Rect.Top+2,index+1);   //绘图,ilType-TImageList  
          Canvas.TextOut(Rect.Left+ilType.Width+4,Rect.Top+8,Items.Strings[index]);  
      end;  
  end

假设我已经把ico放在了imagelist中了呢?

先将ListBox的Style属性设为lbOwnerDrawFixed  
   
  procedure   TForm1.ListBox1DrawItem(Control:   TWinControl;   Index:   Integer;  
      Rect:   TRect;   State:   TOwnerDrawState);  
  var  
      AColor:   TColor;  
  begin  
      with   TListBox(Control)   do  
      begin  
          Canvas.Brush.Color   :=   Color;  
          Canvas.Brush.Style   :=   bsSolid;  
          Canvas.FillRect(Rect);  
          ImageList1.Draw(Canvas,   Rect.Left,   Rect.Top,   0);  
          AColor   :=   ColorToRgb(Color)   xor   $FFFFFF;  
          Canvas.Font.Color   :=   AColor;  
          Canvas.TextOut(ImageList1.Width   +   2,   Rect.Top,   Items[Index]);  
      end;  
  end;

阅读(875) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~