就是利用listview的oncustomdraw及oncustomdrawitem的事件进行重画.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, RxGIF, ExtCtrls, ComCtrls, commctrl;
type
TForm1 = class(TForm)
ListView1: TListView;
Image1: TImage;
Button1: TButton;
procedure ListView1CustomDraw(Sender: TCustomListView;
const ARect: TRect; var DefaultDraw: Boolean);
procedure ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.ListView1CustomDraw(Sender: TCustomListView;
const ARect: TRect; var DefaultDraw: Boolean);
var
Bitmap : TBitMap;
begin
Bitmap := TBitmap.Create;
Bitmap.LoadFromFile('D:/富通程序/bit_bmp/login.bmp');
ListView1.Canvas.Draw(0,0,Bitmap);
ListView1.Color:=clNone;
SetBkMode(Listview1.Canvas.Handle,TRANSPARENT);//就这里了
listview1.Perform(LVM_SETTEXTBKCOLOR,0,LongInt(CLR_NONE));
ListView_SetBKColor(ListView1.Handle,CLR_NONE);
end;
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if Item.Index mod 2=0 then
(Sender as TListView).Canvas.Brush.Color := clred
else
(Sender as TListView).Canvas.Brush.Color := clgreen;
end;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, RxGIF, ExtCtrls, ComCtrls, commctrl;
type
TForm1 = class(TForm)
ListView1: TListView;
Image1: TImage;
Button1: TButton;
procedure ListView1CustomDraw(Sender: TCustomListView;
const ARect: TRect; var DefaultDraw: Boolean);
procedure ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.ListView1CustomDraw(Sender: TCustomListView;
const ARect: TRect; var DefaultDraw: Boolean);
var
Bitmap : TBitMap;
begin
Bitmap := TBitmap.Create;
Bitmap.LoadFromFile('D:/富通程序/bit_bmp/login.bmp');
ListView1.Canvas.Draw(0,0,Bitmap);
ListView1.Color:=clNone;
SetBkMode(Listview1.Canvas.Handle,TRANSPARENT);//就这里了
listview1.Perform(LVM_SETTEXTBKCOLOR,0,LongInt(CLR_NONE));
ListView_SetBKColor(ListView1.Handle,CLR_NONE);
end;
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if Item.Index mod 2=0 then
(Sender as TListView).Canvas.Brush.Color := clred
else
(Sender as TListView).Canvas.Brush.Color := clgreen;
end;
end.