如何在ListView控件中绘底图

翻译|其它|编辑:郝浩|2005-07-26 09:10:00.000|阅读 1131 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>


     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.

 


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP