主题:编程技巧:在ListView控件中绘底图
---- ListView控件是Windows程序开发中的常用控件利用它可以把需要用户进行选择操作的
多个项目在窗口中以列表的方式显示每一个项目可以有它的小图标和大图标从而可以改善
程序的用户界面方便用户操作.
---- 为了使程序的界面更美观
我们还可以在ListView控件中绘制底图正如我们可以为窗口绘制底图一样. 在Delphi中
为ListView控件绘制底图是非常容易的它为我们提供有OnCustomDraw事件专门用于处理
用户自定义的绘制在该事件中编写程序可以在绘制ListView的各个项目之前先执行该
事件程序在ListView的画布(Canvas)上绘制我们自己的图形.
---- 下面是在ListView控件中绘底图的一个小程序其运行结果如下图所示(略)
---- 源程序如下:
procedure TTestFrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Bitmap1.Free;
end;
procedure TTestFrm.FormCreate(Sender: TObject);
begin
Bitmap1 := TBitmap.Create;
Bitmap1.LoadFromFile('backgray.bmp');
end;
procedure TTestFrm.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;
多个项目在窗口中以列表的方式显示每一个项目可以有它的小图标和大图标从而可以改善
程序的用户界面方便用户操作.
---- 为了使程序的界面更美观
我们还可以在ListView控件中绘制底图正如我们可以为窗口绘制底图一样. 在Delphi中
为ListView控件绘制底图是非常容易的它为我们提供有OnCustomDraw事件专门用于处理
用户自定义的绘制在该事件中编写程序可以在绘制ListView的各个项目之前先执行该
事件程序在ListView的画布(Canvas)上绘制我们自己的图形.
---- 下面是在ListView控件中绘底图的一个小程序其运行结果如下图所示(略)
---- 源程序如下:
procedure TTestFrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Bitmap1.Free;
end;
procedure TTestFrm.FormCreate(Sender: TObject);
begin
Bitmap1 := TBitmap.Create;
Bitmap1.LoadFromFile('backgray.bmp');
end;
procedure TTestFrm.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;