收藏本站 收藏本站
积木网首页 - 软件测试 - 常用手册 - 站长工具 - 技术社区
积木学院 > 程序开发 > delphi > 正文

如何在ListView控件中绘底图

来源:互联摘选 日期:2008-07-22 08:45
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.

【责任编辑 李旭海】

推荐阅读

 

热点信息

 
强悍的草根IT技术社区,这里应该有您想要的!
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP备05050695号