如何在ListBox中自绘图象?(50分)

  • 主题发起人 主题发起人 louew
  • 开始时间 开始时间
L

louew

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在ListBox中的每一个Item前,绘制图象,
就像OutLook收件箱的LISTBOX中收信人前的MAIL图标。
 
X:/Program Files/Borland/Delphi5/Demos/Ownerlst
 
那个程序是用TextOut实现的,我这是图象,可能要用到Draw,
但我不知如何使用。请给出详细步骤。包括获取图象指针等等。
 
加一个Image(或动态生成),Visible属性设为False,然后:

以下修改自cAkk所述示例程序:
procedure TForm1.DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
with ListBox1.Canvas do
begin
FillRect(Rect);
Font.Name := ListBox1.Items[Index];
Font.Size := 0; // use font's preferred size
Draw(Rect.Left+1, Rect.Top+1, Image1.Picture.Graphic);
TextOut(Rect.Left+Image1.ClientWidth+1, Rect.Top+1, ListBox1.Items[Index]);
end;
end;
 
louew: 你这样学习可不行哦,textout和draw没什么区别,都是在canvas上画.
要学会举一反三哦.
 
我同意 liuly的方法
使用TListBox的OnDrawItem事件,可以很方便灵活的做出各种的效果。
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
767
DelphiTeacher的专栏
D
D
回复
0
查看
809
DelphiTeacher的专栏
D
D
回复
0
查看
639
DelphiTeacher的专栏
D
后退
顶部