社区
Delphi
帖子详情
怎么样创建不规则窗口?
darkread
2002-05-17 01:41:01
怎么样创建不规则窗口?比如圆的,
...全文
103
14
打赏
收藏
怎么样创建不规则窗口?
怎么样创建不规则窗口?比如圆的,
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fanciex
2002-08-14
打赏
举报
回复
procedure TForm1.FormPaint(Sender: TObject);
var
t:string;
rgn:HRGN;
begin
BeginPath(Canvas.Handle);
SetBkMode( Canvas.Handle, TRANSPARENT );
// Canvas.Font.Name:= fontname;
canvas.Font.Name:=fonttest.Name;
Canvas.Font.Size:=fontsize;
canvas.Font.Style:=fontstyle;
t:=timetostr(now());
Canvas.TextOut( 0, 20, t); //?"????"??form???
EndPath(Canvas.Handle);
rgn:= PathToRegion(Canvas.Handle);
SetWindowRgn( Handle, rgn, true );
end;
professorzhou
2002-05-17
打赏
举报
回复
好啊
Kuye2002yx
2002-05-17
打赏
举报
回复
调用 ActiveForm 控件,窗体不但是不规则的,而且菜单,按钮都有动态效果的哦~~~
只可惜是 ActiveX 版的。
:(
Billy_Chen28
2002-05-17
打赏
举报
回复
利用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;
王集鹄
2002-05-17
打赏
举报
回复
你点[管理]再看一看
有一个回帖被隐藏了
王集鹄
2002-05-17
打赏
举报
回复
你点[管理]再看一看
有一个回帖被隐藏了
王集鹄
2002-05-17
打赏
举报
回复
procedure TForm1.FormCreate(Sender: TObject);
var
vRGN: HRGN;
begin
BeginPath(Canvas.Handle);
SetBkMode(Canvas.Handle, TRANSPARENT);
Canvas.Font.Name := '宋体';
Canvas.Font.Size := 100;
Canvas.TextOut(20, 20, '星 ☆ 星');
EndPath(Canvas.Handle);
vRGN := PathToRegion(Canvas.Handle);
SetWindowRgn(Handle, vRGN, True);
DeleteObject(vRGN);
end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbRight then Exit;
ReleaseCapture;
Perform(WM_SYSCOMMAND, SC_MOVE + 1, 0);
end;
darkread
2002-05-17
打赏
举报
回复
我是一个delphi初学者,听的一头雾水,能给原代码吗?
有劳了
王集鹄
2002-05-17
打赏
举报
回复
vRGN := CreateEllipticRgn(0, 0, Width, Height); //创建一个区域
SetWindowRgn(Handle, vRGN, True); //设置窗体的区域
DeleteObject(vRGN); //释放资源
(* from help
Following are the functions used with regions.
CombineRgn
CreateEllipticRgn
CreateEllipticRgnIndirect
CreatePolygonRgn
CreatePolyPolygonRgn
CreateRectRgn
CreateRectRgnIndirect
CreateRoundRectRgn
EqualRgn
ExtCreateRegion
FillRgn
FrameRgn
GetPolyFillMode
GetRegionData
GetRgnBox
InvertRgn
OffsetRgn
PaintRgn
PtInRegion
RectInRegion
SetPolyFillMode
*)
参考研究这些函数,你可以画出任意形状的窗体
王集鹄
2002-05-17
打赏
举报
回复
把 RGN(区域)数据 和 相关图片 做到资源中
一个个的播放就可以了
嘻嘻嘻个人观点仅供参考嘻嘻嘻嘻
王集鹄
2002-05-17
打赏
举报
回复
把 RGN(区域)数据 和 相关图片 做到资源中
一个个的播放就可以了
嘻嘻嘻个人观点仅供参考嘻嘻嘻嘻
darkread
2002-05-17
打赏
举报
回复
请问具体每一句程序什么意思,有劳了。
还有想东方影都那样的很不规则的,中间还空了一块的,边上还是波浪型的
cgblaochang
2002-05-17
打赏
举报
回复
有谁会做出桌面宠物那样的图形窗体界面?有无源代码或思路?
王集鹄
2002-05-17
打赏
举报
回复
procedure TForm1.FormCreate(Sender: TObject);
var
vRGN: HRGN;
begin
vRGN := CreateEllipticRgn(0, 0, Width, Height);
SetWindowRgn(Handle, vRGN, True);
DeleteObject(vRGN);
end;
在wpf中
创建
一个
不规则
形状的
窗口
在wpf中
创建
一个
不规则
形状的
窗口
在windows上
创建
完美的
不规则
窗口
在windows上
创建
完美的
不规则
窗口
不规则
窗口
方法简介windows上的
窗口
绝大多数是方形的,但是偶尔也会有一些其他形状的
窗口
,如圆形甚至
不规则
形状。这些不常见的
窗口
是如何做出来的呢? 有两种方法可以
创建
不规则
窗口
1、windows在很早的时代就支持
不规则
形状的
窗口
了。windows提供了SetWindowRgn 函数来设置
窗口
的区域,还提供了一些函数来
创建
椭圆、圆角矩形区域,还可以自己绘制
OpenGL
课程涵盖了OpenGL开发的方方面面,对开发中经常用到的开发知识点进行讲解,从实战的角度进行编码设计. 第1章-环境建立 第2章-基础图元 第3章-三维世界 第4章-纹理多彩世界 第5章-显存的分配-优化 第6章-场景控制 第7章...
VC
创建
不规则
窗口
创建
不规则
窗口
无外乎两个API:Set
用Win32 API
创建
不规则
窗口
Win32 API支持
创建
不规则
窗口
,现在很多软件使用这个技术,如:QuickTime,Windows Media Player 7等。AB使用API
创建
不规则
窗口
主要有两种方式,即矢量形状叠加(布尔运算)和位图区域两种。无论哪种方式,都可以实现上面两图的效果。在编写这样的
窗口
代码前,我们必须清楚要
创建
的
窗口
的形状是否复杂,如图片B的
窗口
很复杂,为极
不规则
的
窗口
,很
Delphi
5,392
社区成员
262,731
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章