|
发表于 2014-11-27 21:47:31
|
显示全部楼层
本帖最后由 xcrane 于 2014-11-27 21:48 编辑
希望这次的回答是您想要的结果。
如果是的话,请把鱼币给我啊,呵呵,正是缺钱的时候~~
谢谢。
圆形窗体:
椭圆形窗体:
正方形窗体:
正方形窗体:
想要什么样,就有什么样的窗体。
代码实现:
unit Unit3;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls,
Vcl.Imaging.pngimage, Vcl.Menus;
type
TForm3 = class(TForm)
img1: TImage;
btn1: TButton;
edt1: TEdit;
pm1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
procedure btn1Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N9Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.btn1Click(Sender: TObject);
begin
Close;
end;
procedure TForm3.N1Click(Sender: TObject); //圆形
var
Rect:TRect;
rgn:THandle;
begin
rgn := CreateEllipticRgn(0,0,400,400);
SetWindowRgn(Self.Handle,rgn,True);
end;
procedure TForm3.N3Click(Sender: TObject);
begin
Close;
end;
procedure TForm3.N4Click(Sender: TObject); //椭圆形
var
Rect:TRect;
rgn:THandle;
begin
rgn := CreateEllipticRgn(0,0,500,400);
SetWindowRgn(Self.Handle,rgn,True);
end;
procedure TForm3.N6Click(Sender: TObject); //正方形
var
Rect:TRect;
rgn:THandle;
begin
rgn := CreateRectRgn(0,0,400,400);
SetWindowRgn(Self.Handle,rgn,True);
end;
procedure TForm3.N7Click(Sender: TObject); //长方形
var
Rect:TRect;
rgn:THandle;
begin
rgn := CreateRectRgn(0,0,450,320);
SetWindowRgn(Self.Handle,rgn,True);
end;
procedure TForm3.N9Click(Sender: TObject); //任意图形
var
rgn:THandle;
Star:array[0..12]of TPoint;
begin
Star[0] := Point(200,0);
Star[1] := Point(180,150);
Star[2] := Point(140,300);
Star[3] := Point(100,450);
Star[4] := Point(720,450);
Star[5] := Point(680,300);
Star[6] := Point(660,270);
Star[7] := Point(620,200);
Star[8] := Point(590,180);
Star[9] := Point(580,150);
Star[10] := Point(590,30);
Star[11] := Point(490,0);
rgn := CreatePolygonRgn(star,11,WINDING);
SetWindowRgn(Self.Handle,rgn,True);
end;
end.
|
|