在Delphi中實現任意形狀的窗體 (轉)
Form的TEXT:
Form1: TForm1
Left = 192
Top = 107
BorderStyle = bsNone
Caption = 'Form1'
ClientHeight = 348
ClientWidth = 536
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
OnCreate = Button1Click
PixelsPerInch = 96
TextHeight = 13
object Button1: TButton
Left = 392
Top = 152
Width = 75
Height = 25
Caption = 'Button1'
TabOrder = 0
OnClick = Button1Click
end
object Button2: TButton
Left = 432
Top = 24
Width = 17
Height = 17
Caption = 'Button2'
TabOrder = 1
OnClick = Button2Click
end
object Button3: TButton
Left = 448
Top = 40
Width = 17
Height = 17
Caption = 'Button2'
TabOrder = 2
OnClick = Button3Click
end
object Button4: TButton
Left = 464
Top = 56
Width = 17
Height = 17
Caption = 'Button2'
TabOrder = 3
OnClick = Button4Click
end
end
各種不同的事件聲名:
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
procedure WMmove(var Message: TWMNCHITTEST); Message WM_NCHITTEST;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMmove(var Message: TWMNCHITTEST);
begin
Message.Result := HTCAPTION;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
R1,R2,R3,R4,R5: HRGN;
begin
R1 := CreateEllipticRgn(0,0,Round(ClientWidth / 2),ClientHeight);
R2 := CreateEllipticRgn(Round(ClientWidth / 2),0,ClientWidth,ClientHeight);
R3 := CreateEllipticRgn(Round(ClientWidth / 4 ),Round(ClientHeight / 4 *3),Round(ClientWidth / 4 *3),ClientHeight);
R4 := CreateRectRgn(0,0,0,0);
R5 := CreateRectRgn(0,0,0,0);
CombineRgn(R4,R2,R1,RGN_or);
CombineRgn(R5,R4,R3,RGN_or);
SetWindowRGN(Handle,R5,True);
DeleteObject(R1);
DeleteObject(R2);
DeleteObject(R3);
DeleteObject(R4);
DeleteObject(R5);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
SendMessage(Handle,WM_SYMMAND,SC_MINIMIZE,0);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
SendMessage(Handle,WM_SYSCOMMAND,SC_DEFAULT,0);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Application.Tenate;
end;
end.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-996040/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在VB中實現窗體的動態效果 (轉)
- Flutter - 利用 ClipPath 實現任意形狀 WidgetFlutter
- 在Delphi 中用程式實現自定義窗體的建立和顯示順序(2) (轉)
- 在Delphi中實現圖片的旋轉、縮放 (轉)
- Delphi中停靠技術的實現 (轉)
- 用Delphi在區域網中實現網上影院 (轉)
- 用VB實現“百葉窗”的圖形特效 (轉)特效
- VB中實現窗體自動隱藏 (轉)
- 在VB中實現任意檔案的16進位制方式察看 (轉)
- 在DELPHI中圖片轉換
- Delphi系列談之:Delphi中的靜態屬性及靜態方法的實現 (轉)
- Delphi中序列通訊的實現 作者:阮幫秋 (轉)
- FloatWindow 輕鬆實現安卓任意介面懸浮窗安卓
- C#實現窗體拖動、不允許窗體拖動、任意控制元件執行時拖動C#控制元件
- 在Delphi中操作快捷方式 (轉)
- OA軟體在中小企業中的現狀
- Andorid 任意介面懸浮窗,實現懸浮窗如此簡單
- 在Delphi中巧用WINDOWS 的API函式 (轉)WindowsAPI函式
- 也說說c++builder中的不規則窗體的實現 (轉)C++UI
- ERP管理軟體在我國的現狀(轉)
- Delphi編碼標準——窗體與資料模組命名 (轉)
- 在DELPHI程式中撥號上網 (轉)
- jQuery實現的div在視窗中垂直水平居中效果jQuery
- 在GTK+中實現嵌入式視窗
- js實現在彈出視窗中重新整理主視窗JS
- Singleton模式之Delphi實現 (轉)模式
- 在CGI中實現session的想法和實現 (轉)Session
- 在Delphi中捕獲控制檯程式的輸出 (轉)
- 在Delphi中編寫控制元件的基本方法 (轉)控制元件
- C#中實現窗體間傳值方法C#
- Python 實現任意多邊形的最大內切圓演算法_任意多邊形最大內切圓演算法Python演算法
- 在Delphi與C++之間實現函式與物件共享 (轉)C++函式物件
- 如何基於 echarts 在柱狀圖或條形圖上實現轉換率?(有想法嗎?)Echarts
- 實現控制元件的移動、改變大小(DELPHI實現) (轉)控制元件
- 在Delphi中編寫控制元件的基本方法(1) (轉)控制元件
- javascript實現的任意擷取字串中的子字串JavaScript字串
- 在DELPHI2.0/3.0中直接操作埠 (轉)
- Delphi中TFlowPanel實現滾動條效果