程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 用Delphi設計多邊形窗體

用Delphi設計多邊形窗體

編輯:Delphi

  制作多邊形窗體的關鍵在於設定多邊形的區域,並根據這個指定的區域改變窗體的形狀。Windows的CreatePolygonRgn和SetWindowRgn函數可以解決這兩個難點。

  利用以下代碼即可將窗體設置為一個五邊形:

  
procedure TForm1.FormCreate(Sender: TObject);
 var
  pt: array [0..4] of TPoint;
  m_rgn: HRGN;
 begin
  pt[0].x:=self.Width div 2;
  pt[0].y:=0;
  pt[1].x:=0;
  pt[1].y:=self.Height div 2;
  pt[2].x:=self.Width div 2;
  pt[2].y:=self.Height;
  pt[3].x:=self.Width;
  pt[3].y:=self.Height div 2;
  pt[4].x:=self.Width;
  pt[4].y:=0;
  m_rgn:=CreatePolygonRgn(pt,5,WINDING);
  SetWindowRgn(self.Handle,m_rgn,TRUE);
end;

  該程序首先定義了一個TPoint類型的數組pt,在其中存儲了一個五邊形的數據。然後使用CreatePolygonRgn函數將這個五邊形轉換成為一個區域,最後使用SetWindowRgn函數,根據五邊形指定的區域改變窗體的形狀。

  程序代碼如下:

  
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
 TForm1 = class(TForm)
 procedure FormCreate(Sender: TObject);
 private
  { Private declarations }
 public
  { Public declarations }
end;
var
 Form1: TForm1;
 implementation
 {$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
 var
  pt: array [0..4] of TPoint;
  m_rgn: HRGN;
 begin
  pt[0].x:=self.Width div 2;
  pt[0].y:=0;
  pt[1].x:=0;
  pt[1].y:=self.Height div 2;
  pt[2].x:=self.Width div 2;
  pt[2].y:=self.Height;
  pt[3].x:=self.Width;
  pt[3].y:=self.Height div 2;
  pt[4].x:=self.Width;
  pt[4].y:=0;
  m_rgn:=CreatePolygonRgn(pt,5,WINDING);
  SetWindowRgn(self.Handle,m_rgn,TRUE);
 end; 
end.

  保存文件,然後按F9鍵運行程序,結果如圖1-3所示。

圖 程序運行結果

  制作多邊形窗體的方法並不止本實例所介紹的一種,後面還會涉及到如何制作更為復雜的窗體,希望讀者多加體會,制作出更加有個性的窗體。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved