TListBox1控件设置:
style:=lbOwnerDrawFixed
ItemHeight:=26;
////////
绘画代码:
procedure TListBox1.LstDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
aPic:TPicture;
aPicDisp:IPictureDisp;
r:TRect;
begin
......
//获得aPicDisp
......
SetOlePicture(aPic,aPicDisp);
r.left:=Rect.left+2;
r.top:=Rect.Top+2;
r.right:=r.left+19;
r.bottom:=r.top+19;
TListBox1.Canvas.StretchDraw(r,aPic.Graphic);
......
end;问题是:对同一个IPictureDisp变量绘制时,图像的高度一次比一次,第一次绘画时正常,图像高度为20,但第二次就变为40,第三次就是60....我查看了参数r和aPic的图像大小都是正常的,但为什么会发生这种状况呢?
谢谢.
style:=lbOwnerDrawFixed
ItemHeight:=26;
////////
绘画代码:
procedure TListBox1.LstDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
aPic:TPicture;
aPicDisp:IPictureDisp;
r:TRect;
begin
......
//获得aPicDisp
......
SetOlePicture(aPic,aPicDisp);
r.left:=Rect.left+2;
r.top:=Rect.Top+2;
r.right:=r.left+19;
r.bottom:=r.top+19;
TListBox1.Canvas.StretchDraw(r,aPic.Graphic);
......
end;问题是:对同一个IPictureDisp变量绘制时,图像的高度一次比一次,第一次绘画时正常,图像高度为20,但第二次就变为40,第三次就是60....我查看了参数r和aPic的图像大小都是正常的,但为什么会发生这种状况呢?
谢谢.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货