上一篇 | 下一篇

如何在ListView控件中绘底图

发布: 2008-6-26 17:34 | 作者: admin | 来源: | 查看: 14次

如何在ListView控件中绘底图

重庆市巴南区

周剑峰

---- ListView控件是Windows程序开发中的常用控件,

利用它可以把需要用户进行选择操作的多个项目在窗口中以列表的方式显示,

每一个项目可以有它的小图标和大图标,

从而可以改善程序的用户界面, 方便用户操作.

----

为了使程序的界面更美观, 我们还可以在ListView控件中绘制底图,

正如我们可以为窗口绘制底图一样. 在Delphi中, 为ListView控件绘制底图是非常容易的,

它为我们提供有OnCustomDraw事件, 专门用于处理用户自定义的绘制,

在该事件中编写程序, 可以在绘制ListView的各个项目之前,

先执行该事件程序在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.

字号: | 推荐给好友

评分:0

我来说两句

网络推荐