ListView控件是Windows程序開發(fā)中的常用控件, 利用它可以把需要用戶進(jìn)行選擇操作的多個項(xiàng)目在窗口中以列表的方式顯示, 每一個項(xiàng)目可以有它的小圖標(biāo)和大圖標(biāo), 從而可以改善程序的用戶界面, 方便用戶操作.
---- 為了使程序的界面更美觀, 我們還可以在ListView控件中繪制底圖, 正如我們可以為窗口繪制底圖一樣. 在Delphi中, 為ListView控件繪制底圖是非常容易的, 它為我們提供有OnCustomDraw事件, 專門用于處理用戶自定義的繪制, 在該事件中編寫程序, 可以在繪制ListView的各個項(xiàng)目之前, 先執(zhí)行該事件程序在ListView的畫布(Canvas)上繪制我們自己的圖形.
---- 下面是在ListView控件中繪底圖的一個小程序.
---- 源程序如下:
unit ListViewMain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics,
Controls, Forms, Dialogs,
ComCtrls, ImgList;
type
TForm1 = class(TForm)
ListView1: TListView;
ImageList1: TImageList;
procedure ListView1CustomDraw(Sender:
TCustomListView;
const ARect: TRect; var DefaultDraw:
Boolean);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject;
var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Bitmap1: TBitmap;
implementation
{$R *.DFM}
procedure TForm1.ListView1CustomDraw(Sender:
TCustomListView;
const ARect: TRect; var DefaultDraw: Boolean);
var
x,y,w,h : LongInt;
begin
with Bitmap1 do begin
W := Width;
H := Height;
end;
Y := 0;
while Y < Height do begin
X := 0;
while X < Width do begin
ListView1.Canvas.Draw(X, Y, Bitmap1);
Inc(X, W);
end;
Inc(Y, H);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Bitmap1 := TBitmap.Create;
Bitmap1.LoadFromFile('backgray.bmp');
end;
procedure TForm1.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Bitmap1.Free;
end;
end.