Delphi建立字体形状窗体
Delphi建立字体形状窗体
实例说明
大家都见过不规则的窗体吧,那么如何制作一个文章形的窗体呢?文字形状窗体一般应用在屏幕提示中,如收款机屏幕。本例运行效果如图1.22所示。

1.22字体形状窗体
技术要点
本实例使用用了定义区域函数和设置区域函数。函数说明如下:
BeginPath函数调用启动一个路径分支,在这个命令后,执行的GDI绘图命令会自动成为路径的一部分。
EndPath函数用于结束定义路径;BeginPath函数和它之间发生的所有绘图操作都将在指定设备场景的路径中生效。
PathtoRegion函数调用将当前选定的路径转换到指定区域中。
SetWindowRgn函数功能为设置区域为点(x1,y1)(矩形左上角坐标)和(x2,y2)(矩形右下角坐标)描述的矩形。SetWindowRgn函数原型如下:
int SetWinRgn(
HWND hWnd, // 该区域将被设置为指定矩形
HRGNhRgn , // 矩形左上角坐标
BOOLbRedraw,// 矩形右下角坐标
);
实现过程
1.新建一个工程,该工程会自动建立一个主窗体,默认命名为Form1.
2.程序代码如下:
procedure TForm1.c_d(var msg: TWMNCHITTEST);
begin
inherited;
if msg.Result=htclient then
msg.Result:= htcaption;
end;
procedure TForm1.FormCreate(Sender: TObject);
var rgn:HRGN;
begin
Form1.Color:=clRed;
BeginPath(Canvas.Handle);
SetBKMode(Canvas.Handle,TRANSPARENT);
Canvas.Font.Name:='宋体';
Canvas.Font.Size:=150;
Canvas.TextOut(0,0,'字体窗体');
EndPath(Canvas.Handle);
rgn:=PathToRegion(Canvas.Handle);
SetWindowRgn(Handle,rgn,true);
end;
end.