首页  编辑  

不规则形状的Form

Tags: /超级猛料/VCL/Form,窗体/窗体特效/   Date Created:

下面的内容摘自 <未经证实的葵花宝典>,感谢原作者

四四方方的窗体也会变形,利用win32 API函数setwindowrgn就可以将窗口定义为任何形状,以下是将窗口定义为园角矩形的例子:

procedure TPortForm.FormCreate(Sender: Tobject);

var hr :thandle;

begin

hr:=createroundrectrgn(0,0,width,height,20,20);//定义园角矩形(win API函数)

setwindowrgn(handle,hr,true); //设置园角窗口

end;

为了使该窗口更好,应在onResize事件处理程序放相同的代码。

/////////////////////////////////////

用汉字做窗体形状

procedure TForm1.FormCreate(Sender: TObject);

var

rgn:HRGN;

begin

BeginPath(Canvas.Handle);

SetBkMode( Canvas.Handle, TRANSPARENT );

Canvas.Font.Name:= '宋体';

Canvas.Font.Size:=100;

Canvas.TextOut( 20, 20, '漂亮吗?');//用"漂亮吗?"作为form的形状

EndPath(Canvas.Handle);

rgn:= PathToRegion(Canvas.Handle);

SetWindowRgn( Handle, rgn, true );

end;