怎样制作不规则的图形窗体? 如题,比如有一幅卡通的图片,放在窗体中。所显示的窗体就是图片,是不规则的图形窗体。请问应该怎么实现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormPaint(Sender: TObject); private { Private declarations } frm_pt, frm_pt_border : array[1..9] of TPoint; pt_result : HRGN; public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button2Click(Sender: TObject);begin close;end;procedure TForm1.FormCreate(Sender: TObject);begin frm_pt[1].X := 4; frm_pt_border[1].X := 4; frm_pt[1].Y := 4; frm_pt_border[1].Y := 4; frm_pt[2].X := 4; frm_pt_border[2].X := 4; frm_pt[2].Y := 20; frm_pt_border[2].Y := 20 - 1; frm_pt[3].X := 10; frm_pt_border[3].X := 10; frm_pt[3].Y := 20; frm_pt_border[3].Y := 20 - 1; frm_pt[4].X := 10; frm_pt_border[4].X := 10; frm_pt[4].Y := 298; frm_pt_border[4].Y := 298 - 1; //右半部 frm_pt[5].X := 452; frm_pt_border[5].X := 452; frm_pt[5].Y := 298; frm_pt_border[5].Y := 298 - 1; frm_pt[6].X := 482; frm_pt_border[6].X := 482; frm_pt[6].Y := 268; frm_pt_border[6].Y := 268 - 1; frm_pt[7].X := 483; frm_pt_border[7].X := 483 - 1; frm_pt[7].Y := 20; frm_pt_border[7].Y := 20 - 1; frm_pt[8].X := 489; frm_pt_border[8].X := 489 - 1; frm_pt[8].Y := 20; frm_pt_border[8].Y := 20 - 1; frm_pt[9].X := 489; frm_pt_border[9].X := 489 - 1; frm_pt[9].Y := 4; frm_pt_border[9].Y := 4; //应用区域 pt_result := CreatePolygonRgn(frm_pt, 9, 1); SetWindowRgn( form1.Handle, pt_result, false);end;procedure TForm1.FormPaint(Sender: TObject);begin //区域着色 form1.Canvas.Brush.Color := $00E7DFBE; form1.Canvas.FillRect(rect(5, 5, 488, 20)); form1.Canvas.Brush.Color := $00E7E7E7; form1.Canvas.FillRect(rect(11, 21, 481, 296)); //边界轮廓 form1.Canvas.Polygon(frm_pt_border); //中横线 form1.Canvas.MoveTo(10, 19); form1.Canvas.LineTo(482, 19); //下三角 form1.Canvas.MoveTo(452, 297); form1.Canvas.LineTo(452, 267); form1.Canvas.LineTo(482, 267);end;end.你说的这种我忘了。是有相关函数,把一个图片的某种颜色去掉,就变成不规则窗口了 很多软件都是只看到不规则图形的界面,而不是一个多边等界面。我看到过这种控件,但是VB的,在DEIPHI中安装不上。谁能告诉哪有这种控件啊? 这个是什么控件完成的?还是直接Canvas画图的? 跪求一个可以播流的例子,DSPlayer_AsyncFileSource_v0.2编译无错,打开文件就出错了 如何用trackbar调节progressbar的颜色 谁可以帮帮我???? 如何在复制控件的时候,自动复制其代码? 怎样在Dbgrid中实现按回车后实现TAB键功能,高分相送 一个简单的数据库查询问题———100分!!! 请大家推荐详细介绍windows各消息含义的网站,up有分 急、急,请高手帮忙,主/从表的打印 这条语句在Delphi 6下不能通过?WHY? 考程序员 急求树形控件,要求Node前面带有一个选择框,要有源码。
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormPaint(Sender: TObject);
private
{ Private declarations }
frm_pt, frm_pt_border : array[1..9] of TPoint;
pt_result : HRGN;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;procedure TForm1.FormCreate(Sender: TObject);begin
frm_pt[1].X := 4; frm_pt_border[1].X := 4;
frm_pt[1].Y := 4; frm_pt_border[1].Y := 4;
frm_pt[2].X := 4; frm_pt_border[2].X := 4;
frm_pt[2].Y := 20; frm_pt_border[2].Y := 20 - 1;
frm_pt[3].X := 10; frm_pt_border[3].X := 10;
frm_pt[3].Y := 20; frm_pt_border[3].Y := 20 - 1; frm_pt[4].X := 10; frm_pt_border[4].X := 10;
frm_pt[4].Y := 298; frm_pt_border[4].Y := 298 - 1;
//右半部
frm_pt[5].X := 452; frm_pt_border[5].X := 452;
frm_pt[5].Y := 298; frm_pt_border[5].Y := 298 - 1; frm_pt[6].X := 482; frm_pt_border[6].X := 482;
frm_pt[6].Y := 268; frm_pt_border[6].Y := 268 - 1; frm_pt[7].X := 483; frm_pt_border[7].X := 483 - 1;
frm_pt[7].Y := 20; frm_pt_border[7].Y := 20 - 1;
frm_pt[8].X := 489; frm_pt_border[8].X := 489 - 1;
frm_pt[8].Y := 20; frm_pt_border[8].Y := 20 - 1;
frm_pt[9].X := 489; frm_pt_border[9].X := 489 - 1;
frm_pt[9].Y := 4; frm_pt_border[9].Y := 4;
//应用区域
pt_result := CreatePolygonRgn(frm_pt, 9, 1);
SetWindowRgn( form1.Handle, pt_result, false);
end;procedure TForm1.FormPaint(Sender: TObject);
begin
//区域着色
form1.Canvas.Brush.Color := $00E7DFBE;
form1.Canvas.FillRect(rect(5, 5, 488, 20)); form1.Canvas.Brush.Color := $00E7E7E7;
form1.Canvas.FillRect(rect(11, 21, 481, 296)); //边界轮廓
form1.Canvas.Polygon(frm_pt_border);
//中横线
form1.Canvas.MoveTo(10, 19);
form1.Canvas.LineTo(482, 19);
//下三角
form1.Canvas.MoveTo(452, 297);
form1.Canvas.LineTo(452, 267);
form1.Canvas.LineTo(482, 267);
end;end.你说的这种我忘了。是有相关函数,把一个图片的某种颜色去掉,就变成不规则窗口了
我看到过这种控件,但是VB的,在DEIPHI中安装不上。
谁能告诉哪有这种控件啊?