2022企业服务(新型)提供商TOP150
全世界各行各业联合起来,internet一定要实现!

如何在ListView控件中绘底图

2004-02-14 eNet&Ciweek

  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.

相关频道: eNews

您对本文或本站有任何意见,请在下方提交,谢谢!

投稿信箱:tougao@enet16.com