程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 如何在ListView控件中繪底圖

如何在ListView控件中繪底圖

編輯:Delphi
     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; 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved