我的图标是32*32的,想在图标画在Listview的小图标中,小图标的大小是16*16,我用canvas.StrectDraw画,可是画出来的图标黑黑的,用canvas.draw画又没这个问题,可是图标只能画出一部分,请问这是什么原因,程序代码如下:
var i,j,l,k:integer;
    m,r:Trect;
    bmp:Tbitmap;
begin
  defaultDraw := false;
  m.Left := 3;
  m.Top := item.Top+3;
  m.Right := item.Left-3;
  m.Bottom := item.Top + item.Left-3;  r.Left := 3+m.Right;
  r.Top := item.Top+1;
  r.Bottom := item.Top + item.Left-1;
  r.Right := r.Left+m.Left+m.Bottom-m.Top;
  sender.Canvas.Font.Color := clblack;
  sender.Canvas.Pen.Color := $00408000;
  sender.Canvas.Brush.Style := bsClear;
  sender.Canvas.Rectangle(m);  if item.Checked then
  begin
    i := 5;
    j := m.top+5;
    sender.Canvas.Pen.Width := 1;
    sender.Canvas.MoveTo(i,j);
    sender.Canvas.Pen.Color := clred;
    sender.Canvas.Pen.width := 2;
    sender.Canvas.LineTo(i+3,m.Bottom-3);
    sender.Canvas.LineTo(i+7,j-3);
    sender.Canvas.Pen.Width := 1;
  end ;
  bmp := Tbitmap.Create;
  bmp.LoadFromFile('newFace\3-1.bmp');
  bmp.Transparent := true;
  Bmp.TransparentColor := clTeal;
  sender.Canvas.StretchDraw(r,bmp);
  bmp.Free;
  sender.Canvas.TextOut(r.Right+1,item.Top+1,item.Caption);
其中那张图片在qq中可以找到,请问为什么用strectDraw画有问题,看了帮助,帮助上说用CopyMode可以解决,可是又找不到解决方法,请高手指点!