社区
GAME,图形处理/多媒体
帖子详情
图片圆角是如何实现?请教高手!
a81826664
2012-03-10 05:28:03
像360样的界面 他的界面四个角都是圆角 这个要怎么实现?换句话说 Image如何实现圆角!
...全文
187
8
打赏
收藏
图片圆角是如何实现?请教高手!
像360样的界面 他的界面四个角都是圆角 这个要怎么实现?换句话说 Image如何实现圆角!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
口袋购物
2012-03-12
打赏
举报
回复
前辈啊~都是高人
iamduo
2012-03-12
打赏
举报
回复
最简单的,用 Raize 里的一个Form控件。
直接赋值图片,Form就变成这个样子了。
lynmison2012
2012-03-10
打赏
举报
回复
建议不要用一张大图贴到Form上,可以把图片拆分贴到对应位置上。创建圆角窗口如下:
procedure TWnd.CreateRoundWnd();
var
hr :thandle;
begin
hr := CreateRoundRectRGN(0,0,Width+1,Height+1,9,9);
SetWindowRgn(Handle,hr,true);
end;
procedure TWnd.FormCreate(Sender: TObject);
begin
lblTitle.Caption := Caption;
Color := StrToIntDef(sysObj.SkinColor,clBtnFace);
CreateRoundWnd();
LoadWindowFrame(); //加载相关的图片资源
lblTitle.OnMouseDown := ReadyToMove;
imgTitleBanner.OnMouseDown := ReadyToMove;
imgClose.OnClick := OnCloseForm;
end;
程晨c
2012-03-10
打赏
举报
回复
http://topic.csdn.net/u/20120304/23/b53cfe9f-afce-4404-bde0-b01642e9d584.html
这个帖子里提供了两种实现不规则窗体的方法
meegowei1
2012-03-10
打赏
举报
回复
制作不规程窗口
你是不是已经被windows中方方正正的窗口搞得反胃过!也许你也看见过在其他程序中出现的不规则窗口,并且被搞得兴奋不已。如果你认为这是一种复杂且难以掌握的技术的话,那可就大错特错了!改变窗口的形状可能是最简单的编程技术之一,下面我用Delphi来举个例子。
启动Delphi后,你会看到一个看到一个默认的名为form1的窗口,显然这是个标准的Windows窗口--因为它是彻底的方方正正!双击这个窗口,你将会进入程序编写的部分。翻页向上览阅,你会看到有一行粗黑体的“USES”,确保其后紧跟"windows"这个词,这表示你可以使用大部分的windowsAPI而不用弄破头。然后在翻页往下,一直到出现“procedure TForm1.FormCreate(Sender: TObject);”,如果你事先将窗口的名字改了,那么我可不敢保证出现的是这么一句话。再下面是“Begin”和“End;”,在“Begin”和“End”之间插入光标,按回车,空开一行以便我们输入语句。
写下“SetWindowRgn(form1.Handle,CreateEllipticRgn(0, 0, 300, 100),true);”,注意最后一定要加分号!这是为了不至于出现一大堆的警告和错误。按下运行键或是选取菜单“ RUN::RUN”稍侯片刻,在屏幕中出现一个椭圆的窗口!
现在,我来解释一下:首先“SetWindowRgn”表示我们要通知Windows要改变窗口的形状,然后在扩号内的是一大串参数。第一个参数是告诉Windows是对哪个窗口进行操作,Delphi中的handle属性与VB中的hWND属性一致(详细请参看《制作3D屏幕保护程序》一文);第二个参数是一个函数,告诉windows我们要的椭圆的大小起始点在0,0处,然后长300,高200。最后的“true”告诉windows立刻执行。
显然,你也可以改变CreateEllipticRgn的参数来获得不同的椭圆,由于起始点的改变可能使标题栏不会出现以至于无法移动窗口或最小化等问题,但是你可以在程序中作出处理(这里将不涉及这方面的讨论,任何一本Delphi书都可能包含这些内容)。
同时,将CreateEllipticRgn替换成以下函数可以获得不同的窗口形状:
1. 矩形 CreateRectRgn(X1:long,Y1:long,X2:long,Y2:long)
2. 圆角矩形 CreateRoundRectRgn ( X1:Long, Y1:Long, X2:Long, Y2:Long, X3:Long,Y3:Long)
3. 多边形 CreatePolygonRgn (lpPoint:POINTAPI,nCount:Long,nPolyFillMode:Long)
4. 由多边形围成的区域 CreatePolyPolygonRgn (lpPoint:POINTAPI,lpPolyCounts :Long,nCount:Long,nPolyFillMode:Long)
显然,最后两个函数可以将窗口变成五花八门的形状!你可以参考相关的资料来学习如何使用它们(由于调用最后两个函数可以涉及很多相关函数和内容,所以在这里不做讨论)。另外只要稍作改变,这个技巧就可以在其它编程工具中使用,在这里我们使用的是经过Delphi封装的WindowsAPI函数,因此在其他工具中可能要显式的声明或调用其封装的函数,(SetWindowRgn在user32.dll,其它函数均包含在gdi32.dll中)。
a81826664
2012-03-10
打赏
举报
回复
360的不是用图片来实现的 肯定是经过代码处理了!
我看见佛
2012-03-10
打赏
举报
回复
其实图片都是四方形的,只不过边上是透明的,所以看上去是圆角的
你把一张边上半圆透明图片加载到IMAGE中,也会显示也会成圆角形,学过网站制作的话,这个功能经常用的到的
无条件为你
2012-03-10
打赏
举报
回复
圆角非常好实现。你先把窗体弄透明,然后放png或gif到image里面,把图片处理成圆角,于是就OK了。
delphi默认不支持这些格式,但有办法支持。网上例子很多。
android每日一问1【2011-09-08】
java YOYOPlayer1.2 源码 如何
实现
系统文件长按 -> 共享 添加我的应用 有图 popupWindow获取焦点后,parent如何响应点击事件 如何判断蓝牙设备是否连接。
高手
请进,组件和蓝牙问题 蓝牙问题,不支持的文件格式无法通过蓝牙发送 android 关于蓝牙传输 G13 和什么存储卡兼容性比较好? 关于Android中点击事件和...
android开发相关资料整理【2011-09-08】
java YOYOPlayer1.2 源码 如何
实现
系统文件长按 -> 共享 添加我的应用 有图 popupWindow获取焦点后,parent如何响应点击事件 如何判断蓝牙设备是否连接。
高手
请进,组件和蓝牙问题 蓝牙问题,不支持的文件格式无法通过蓝牙发送 android 关于蓝牙传输 G13 和什么存储卡兼容性比较好? 关于Android中点击事件和滑动事...
iphone开发每日一练【2011-08-27】
关于数据库 获取UItouch的速度及惯性移动 求
高手
指点上传App store流程 怎么样在iPad上加微博 我想在toolbar上放
图片
怎么做? apple个人开发者不经过app store可以发布程序给朋友吗 请问iphone开发里有没有RSA加密的库,谢谢
php画图抗锯齿,关于抗锯齿的详细介绍
本篇文章主要介绍了CSS3中字体平滑处理和抗锯齿渲染,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。在围观Drupal官方主题的时候,发现了一个有意思的非标准CSS选择器-webkit-font-smoothing,于是上手把玩了一番。如何使用css3字体平滑显示呢要知道,W3C对CSS中字体的抗锯齿渲染是有过考虑的,如font-smooth,不过可能由于不同操作系统以及浏览器内核对字体的渲染...
android开发技术文章荟萃【2011-11-2】
Android 小闹钟(三) android如何获取本机ip地址 bitmap获取出的
图片
大小和原图不一样 请问有人用NDK的EGL类库成功初始化一个opengl的么 PendingIntent传值问题 android requestFocus问题 TextView怎么
实现
“反选文字” 如何
实现
个性化弹出窗口界面 Android网络电台 怎么
实现
读取联系人资料 Android
GAME,图形处理/多媒体
1,183
社区成员
14,336
社区内容
发帖
与我相关
我的任务
GAME,图形处理/多媒体
Delphi GAME,图形处理/多媒体
复制链接
扫一扫
分享
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章