delphi如何设计不规则窗体
制作多边形窗体的关键在于设定多边形的区域,并根据这个指定的区域改变窗体的形状。Windows的CreatePolygonRgn和SetWindowRgn函数可以解决这两个难点。
利用以下代码即可将窗体设置为一个五边形:
procedure TForm1.FormCreate(Sender: TObject);
var
pt: array [0..4] of TPoint;
m_rgn: HRGN;
begin
pt[0].x:=self.Width div 2;
pt[0].y:=0;
pt[1].x:=0;
pt[1].y:=self.Height div 2;
pt[2].x:=self.Width div 2;
pt[2].y:=self.Height;
pt[3].x:=self.Width;
pt[3].y:=self.Height div 2;
pt[4].x:=self.Width;
pt[4].y:=0;
m_rgn:=CreatePolygonRgn(pt,5,WINDING);
SetWindowRgn(self.Handle,m_rgn,TRUE);
end;
该程序首先定义了一个TPoint类型的数组pt,在其中存储了一个五边形的数据。然后使用CreatePolygonRgn函
数将这个五边形转换成为一个区域,最后使用SetWindowRgn函数,根据五边形指定的区域改变窗体的形状。
程序代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
pt: array [0..4] of TPoint;
m_rgn: HRGN;
begin
pt[0].x:=self.Width div 2;
pt[0].y:=0;
pt[1].x:=0;
pt[1].y:=self.Height div 2;
pt[2].x:=self.Width div 2;
pt[2].y:=self.Height;
pt[3].x:=self.Width;
pt[3].y:=self.Height div 2;
pt[4].x:=self.Width;
pt[4].y:=0;
m_rgn:=CreatePolygonRgn(pt,5,WINDING);
SetWindowRgn(self.Handle,m_rgn,TRUE);
end;
end.
保存文件,然后按F9键运行程序,就可以看到效果。
delphi如何设计不规则窗体的更多相关文章
- WPF设计の不规则窗体
我们在工作中,经常会需要画一些不规则的窗体,现在总结如下. 一.利用VisualBrush实现.这依赖于VisualBrush的特性,任何控件可以作为画刷,而画刷又可以作为背景. 此种方法可以用于实现 ...
- WPF界面设计技巧(1)—不规则窗体图文指南
原文:WPF界面设计技巧(1)-不规则窗体图文指南 初到园子,奉上第一篇入门级教程,请勿见笑. 以往WinForm编程中,实现不规则窗体是有一定难度的,更难的是不规则窗体的边缘抗锯齿及局部透明处理.而 ...
- Delphi 实现不规则窗体
最近为了要兼容XP系统(守旧的市场),又需要做出产品的特效,不得不从头学习一下这门 “聪明的语言” . 开发环境: win10 Delphi 10.2 Version 25.0.26309.314 产 ...
- delphi 不规则窗体与桌面宠物
二.支持区域操作的编程接口在Windows的API函数中有一组用于区域操作的函数,可以用来生成区域.合并区域.获取区域数据.根据数据生成区域.把区域和窗体联系等,其中常用的几个函数有:生成矩形区域的C ...
- WPF中不规则窗体与WebBrowser控件的兼容问题解决办法
原文:WPF中不规则窗体与WebBrowser控件的兼容问题解决办法 引言 这几天受委托开发一个网络电视项目,要求初步先使用内嵌网页形式实现视频播放和选单,以后再考虑将网页中的所有功能整合进桌面程序. ...
- WPF中不规则窗体与WindowsFormsHost控件的兼容问题完美解决方案
首先先得瑟一下,有关WPF中不规则窗体与WindowsFormsHost控件不兼容的问题,网上给出的解决方案不能满足所有的情况,是有特定条件的,比如 WPF中不规则窗体与WebBrowser控件的兼 ...
- QT实现不规则窗体
看到网上有很多不规则窗体的实现,效果很酷.于是使用QT也实现了一个,QT的不规则窗体实现非常简单,只需要设置一个mask(遮掩)图片,这个图片的格式可以使用png或bmp格式,我使用了png格式,默认 ...
- [小结][N种方法]实现WPF不规则窗体
原文:[小结][N种方法]实现WPF不规则窗体 WPF实现不规则窗体,方法很多很多多.... 本文总结DebugLZQ认为简洁高效的几种方法 实现WPF不规则窗体的几种常用的方法如下: 1.使用Ble ...
- 游戏UI框架设计(三) : 窗体的层级管理
游戏UI框架设计(三) ---窗体的层级管理 UI框架中UI窗体的"层级管理",最核心的问题是如何进行窗体的显示管理.窗体(预设)的显示我们前面定义了三种类型: 普通.隐藏其他.反 ...
随机推荐
- Qt Creator 无法解析的外部符号(转)
https://blog.csdn.net/yvhvv/article/details/8474356 一直报某个构造函数无法解析,但看了下代码中没有问题,后来把debug文件夹删掉,重新运行后问题解 ...
- 57. Collections(list的工具类)、Arrays(数组的工具类)
List集合的工具类(Collections): 注意:Collection是单列集合的根接口 Collections是操作集合对象的工具类 1.对list集合排序: sort(List) 根据自然 ...
- leetcood学习笔记-14*-最长公共前缀
笔记: python if not 判断是否为None的情况 if not x if x is None if not x is None if x is not None`是最好的写法,清晰,不 ...
- 73 QT编程入门
0 引言 最近开始在QT下编程,记录一下遇到的问题以及解决方法. 1 安装下载及学习资料 (1)安装下载链接 安装链接: https://blog.csdn.net/qq_23473839/artic ...
- NX二次开发-使用MFC对话框不能用UF_UI_select等函数解决方法
VC/MFC调用UG Dialog要进入加锁状态 加锁 UF_UI_lock_ug_access ( UF_UI_FROM_CUSTOM ); 此处为UF_UI_select的函数 解锁 UF_UI_ ...
- (转)Ubuntu下用eclipse cdt编写多线程程序的简单设置
在Ubuntu下用eclipse cdt编写了一个多线程程序,但是总是出现pthread_create函数未定义! 查找了下原因,原来是要对eclipse进行一些简单的设置: 右键单击项目->P ...
- 2017年上半年,一线城市豪宅TOP50成交均价排名
辣眼睛!最新豪宅排行榜来了!释放重磅信号 东方财富网 2017-07-27 08:47 阅读:152 摘要:在中国,在买房这个问题上,不少工薪族都感到亚历山大.但是,在富豪眼里,犯难的是投资哪个房地产 ...
- 资源-.Net-ASP.NET:ASP.NET资源列表
ylbtech-资源-.Net-ASP.NET:ASP.NET资源列表 ASP.NETFree. Cross-platform. Open source.A framework for buildin ...
- 如何使用Intellij IDEA工具导入SVN项目
Intellij IDEA是目前主流的IDE开发工具,工程项目导入也是必不可少的操作,本文讲述如何用 IDEA工具导入SVN项目. 步骤一:选择VCS打开Intellij IDEA开发工具,在导航栏中 ...
- upc组队赛2 Master of GCD 【线段树区间更新 || 差分】
Master of GCD 题目描述 Hakase has n numbers in a line. At fi rst, they are all equal to 1. Besides, Haka ...