首页  ç¼–辑  

如何在ListView控件中绘底图

Tags: /超级猛料/VCL/ListView/   Date Created:

ListView¿Ø¼þÊÇWindows³ÌÐò¿ª·¢Öеij£Óÿؼþ, ÀûÓÃËü¿ÉÒÔ°ÑÐèÒªÓû§½øÐÐÑ¡Ôñ²Ù×÷µÄ¶à¸öÏîÄ¿ÔÚ´°¿ÚÖÐÒÔÁбíµÄ·½Ê½ÏÔʾ, ÿһ¸öÏîÄ¿¿ÉÒÔÓÐËüµÄСͼ±êºÍ´óͼ±ê, ´Ó¶ø¿ÉÒÔ¸ÄÉÆ³ÌÐòµÄÓû§½çÃæ, ·½±ãÓû§²Ù×÷.

---- ΪÁËʹ³ÌÐòµÄ½çÃæ¸üÃÀ¹Û, ÎÒÃÇ»¹¿ÉÒÔÔÚListView¿Ø¼þÖлæÖƵ×ͼ, ÕýÈçÎÒÃÇ¿ÉÒÔΪ´°¿Ú»æÖƵ×ͼһÑù. ÔÚDelphiÖÐ, ΪListView¿Ø¼þ»æÖƵ×ͼÊǷdz£ÈÝÒ×µÄ, ËüΪÎÒÃÇÌṩÓÐ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.