如何在listview控件里显示背景图片????????????????????? 如何在listview控件里显示背景图片,xiexie 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如何在ListView控件中绘底图--------------------------------------------------------------------------------重庆市巴南区 周剑峰 ---- ListView控件是Windows程序开发中的常用控件, 利用它可以把需要用户进行选择操作的多个项目在窗口中以列表的方式显示, 每一个项目可以有它的小图标和大图标, 从而可以改善程序的用户界面, 方便用户操作. ---- 为了使程序的界面更美观, 我们还可以在ListView控件中绘制底图, 正如我们可以为窗口绘制底图一样. 在Delphi中, 为ListView控件绘制底图是非常容易的, 它为我们提供有OnCustomDraw事件, 专门用于处理用户自定义的绘制, 在该事件中编写程序, 可以在绘制ListView的各个项目之前, 先执行该事件程序在ListView的画布(Canvas)上绘制我们自己的图形. ---- 下面是在ListView控件中绘底图的一个小程序, 其运行结果如下图所示(略) ---- 源程序如下: unit ListViewMain;interfaceusesWindows, Messages, SysUtils, Classes, Graphics,Controls, Forms, Dialogs,ComCtrls, ImgList;typeTForm1 = 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;varForm1: TForm1;Bitmap1: TBitmap;implementation{$R *.DFM}procedure TForm1.ListView1CustomDraw(Sender:TCustomListView;const ARect: TRect; var DefaultDraw: Boolean);varx,y,w,h : LongInt;beginwith Bitmap1 do beginW := Width;H := Height;end;Y := 0;while Y < Height do beginX := 0;while X < Width do beginListView1.Canvas.Draw(X, Y, Bitmap1);Inc(X, W);end;Inc(Y, H);end;end;procedure TForm1.FormCreate(Sender: TObject);beginBitmap1 := TBitmap.Create;Bitmap1.LoadFromFile('backgray.bmp');end;procedure TForm1.FormClose(Sender: TObject;var Action: TCloseAction);beginBitmap1.Free;end;end. 在ListView1CustomDraw中写代码关键代码为 ListView1.Canvas.Draw(X, Y, Bitmap);用Canvas来自己将位图画上去! 如何写论文才能发表在期刊上,或者被EI引用? 和大家探讨一个问题 关于delphi主从表的删除问题 最近运气不错。。。 Timage显示的图片不能充满窗体的问题 跪求一问题之答案 大家帮我找找<delphi开发与技巧>!!! 怎么改变dbgrid中显示的字段的长度? 给分了----简单问题-------——————————————————? 时间怎么相减?急!急!急! 求大家帮忙:需要一份计算机专业的毕业论文,题目没限制! 诱惑测试[你能受的了吗?]
--------------------------------------------------------------------------------
重庆市巴南区
周剑峰
---- 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.
关键代码为 ListView1.Canvas.Draw(X, Y, Bitmap);用Canvas来自己将位图画上去!