如何在ListView中加入背景图片?(50分)

  • 主题发起人 主题发起人 CoCo_
  • 开始时间 开始时间
C

CoCo_

Unregistered / Unconfirmed
GUEST, unregistred user!
就象网络蚂蚁的界面那样的,它是ListView吧,不要空间,在下想要源代码:)
 
看demo下面的一个例子吧:)
 
是customdraw这个例子么,它的程序里的Itmes居然不是透明的,一块一块的,很难看:(
 
在TtreeView.Canvas中用winapi(具体的名字忘记了)将图片平铺,
可以减少资源的消耗.
我以前做的如下;
procedure TShare.BmpCopy(var Bitmap: TBitmap;var ImageCopy:TImage);
var
MyRect, MyOther: TRect;
Row,Col:Word;
begin
MyOther := Rect(0,0,Bitmap.Width, Bitmap.Height);
for Row:=0 to ImageCopy.Height DIV Bitmap.Height do
for Col:=0 to ImageCopy.Width DIV Bitmap.Width do
begin
MyRect := Rect(Col*Bitmap.Width,Row*Bitmap.Height,Bitmap.Width+Col*Bitmap.Width,Bitmap.Height+Row*Bitmap.Height);
ImageCopy.Canvas.CopyRect(MyRect,Bitmap.Canvas,MyOther);
end;
end;
将第二个参数改为TCanvas即可.
 
给你一段程序。(转贴)
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.
 
阁下给的例子,如果添加Itmes的话还仍然不是透明的,一块一块的,很难看:(
 
看看这个行不行。
http://www.delphibbs.com/delphibbs/DispQ.asp?LID=357007
 
CoCo_:如果还想接着讨论请定期提前自己的帖子,如果不想继续讨论请结束帖子。
 
多人接受答案了。
 
后退
顶部