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

Delphi設計多邊形窗體

編輯:Delphi

本文將介紹如何利用Windows提供的制作界面函數制作一個多邊形窗體。

制作多邊形窗體的關鍵在於設定多邊形的區域,並根據這個指定的區域改變窗體的形狀。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