熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

巧妙用Delphi設計多邊形窗體

2013-11-11 21:04:44  來源: Delphi編程 
本文將介紹如何利用Windows提供的制作界面函數制作一個多邊形窗體
  
  制作多邊形窗體的關鍵在於設定多邊形的區域並根據這個指定的區域改變窗體的形狀Windows的CreatePolygonRgn和SetWindowRgn函數可以解決這兩個難點
  
  利用以下代碼即可將窗體設置為一個五邊形
  
  procedure TFormFormCreate(Sender: TObject);
  var
  pt: array [] of TPoint;
  m_rgn: HRGN;
  begin
  pt[]x:=selfWidth div ;
  pt[]y:=;
  pt[]x:=;
  pt[]y:=selfHeight div ;
  pt[]x:=selfWidth div ;
  pt[]y:=selfHeight;
  pt[]x:=selfWidth;
  pt[]y:=selfHeight div ;
  pt[]x:=selfWidth;
  pt[]y:=;
  m_rgn:=CreatePolygonRgn(ptWINDING);
  SetWindowRgn(selfHandlem_rgnTRUE);
  end;
  
  該程序首先定義了一個TPoint類型的數組pt在其中存儲了一個五邊形的數據然後使用CreatePolygonRgn函數將這個五邊形轉換成為一個區域最後使用SetWindowRgn函數根據五邊形指定的區域改變窗體的形狀
  
  程序代碼如下
  
  unit Unit;
  interface
  
  uses
  Windows Messages SysUtils Variants Classes Graphics Controls Forms
  Dialogs;
  
  type
  
  TForm = class(TForm)
  procedure FormCreate(Sender: TObject);
  private
  { Private declarations }
  public
  { Public declarations }
  end;
  
  var
  Form: TForm;
  implementation
  {$R *dfm}
  
  procedure TFormFormCreate(Sender: TObject);
  var
  pt: array [] of TPoint;
  m_rgn: HRGN;
  begin
  pt[]x:=selfWidth div ;
  pt[]y:=;
  pt[]x:=;
  pt[]y:=selfHeight div ;
  pt[]x:=selfWidth div ;
  pt[]y:=selfHeight;
  pt[]x:=selfWidth;
  pt[]y:=selfHeight div ;
  pt[]x:=selfWidth;
  pt[]y:=;
  m_rgn:=CreatePolygonRgn(ptWINDING);
  SetWindowRgn(selfHandlem_rgnTRUE);
  end;
  end
  
  保存文件然後按F鍵運行程序結果如圖所示
  

  
圖 程序運行結果

  
  制作多邊形窗體的方法並不止本實例所介紹的一種後面還會涉及到如何制作更為復雜的窗體希望讀者多加體會制作出更加有個性的窗體
From:http://tw.wingwit.com/Article/program/Delphi/201311/8430.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.