如何在Listbox加背景图:
1. 建立一个窗体 2. 放一个ComboBox和Listbox 3. 改变Component的Style为csOwnerDrawVariable和ListBox的Style为lbOwnerDrawVariable。 4. 声明5个TBitmap的全局变量 5. 覆盖Form的OnCreate. 6. 覆盖ComboBox的OnDraw. 7. 覆盖ComboBox的OnMeasureItem. 8. 释放资源在Form的OnClose. unit Ownerdrw; interface uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) ComboBox1: TComboBox; ListBox1: TListBox; procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure ComboBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); procedure ComboBox1MeasureItem(Control: TWinControl; Index: Integer; var Height: Integer); procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); procedure ListBox1MeasureItem(Control: TWinControl; Index: Integer; var Height: Integer); private { Private declarations } public { Public declarations } end; var Form1: TForm1; TheBitmap1, TheBitmap2, TheBitmap3, TheBitmap4, TheBitmap5 : TBitmap; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin TheBitmap1 := TBitmap.Create; TheBitmap1.LoadFromFile('C:/delphi/images/buttons/globe.bmp'); TheBitmap2 := TBitmap.Create; TheBitmap2.LoadFromFile('C:/delphi/images/buttons/video.bmp'); TheBitmap3 := TBitmap.Create; TheBitmap3.LoadFromFile('C:/delphi/images/buttons/gears.bmp'); TheBitmap4 := TBitmap.Create; TheBitmap4.LoadFromFile('C:/delphi/images/buttons/key.bmp'); TheBitmap5 := TBitmap.Create; TheBitmap5.LoadFromFile('C:/delphi/images/buttons/tools.bmp'); ComboBox1.Items.AddObject('Bitmap1: Globe', TheBitmap1); ComboBox1.Items.AddObject('Bitmap2: Video', TheBitmap2); ComboBox1.Items.AddObject('Bitmap3: Gears', TheBitmap3);