少妇AV一区二区三区无|久久AV电影一区三|日本一级片黄色毛片|亚洲久久成人av在线久操|黄色视频在线免费看呀一区二区|综合精品视频精品久久久浪朝|亚洲午夜成人资源|欧美黄色一级片黑寡妇|内射无毛少妇特写|无码农村夜晚偷拍啪啪

Delphi用Windows界面函數(shù)設(shè)計多邊形窗體

時間:2009-04-10 15:20:00   來源:無憂考網(wǎng)     [字體: ]
制作多邊形窗體的關(guān)鍵在于設(shè)定多邊形的區(qū)域,并根據(jù)這個指定的區(qū)域改變窗體的形狀。Windows的CreatePolygonRgn和SetWindowRgn函數(shù)可以解決這兩個難點。
  利用以下代碼即可將窗體設(shè)置為一個五邊形:
  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類型的數(shù)組pt,在其中存儲了一個五邊形的數(shù)據(jù)。然后使用CreatePolygonRgn函數(shù)將這個五邊形轉(zhuǎn)換成為一個區(qū)域,最后使用SetWindowRgn函數(shù),根據(jù)五邊形指定的區(qū)域改變窗體的形狀。
  程序代碼如下:
  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鍵運行程序