国产18禁黄网站免费观看,99爱在线精品免费观看,粉嫩metart人体欣赏,99久久99精品久久久久久,6080亚洲人久久精品

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

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