delphi 特殊窗体
delphi 窗体阴影
放窗体创建事件里面
SetClassLong(Handle, GCL_STYLE, GetClassLong(Handle, GCL_STYLE) or CS_DROPSHADOW);
采用API画圆角的窗体!
圆角窗体一(四角都是圆角的)采用CreateRoundRectRgn,SetWindowRgn函数就可实现!函数参数如下:
函数一:
int SetWindowRgn;(HWND hWnd, HRGN hRgn, BOOL bRedraw)
参数
hWnd
[在] 对窗户区域将被设定的窗户的柄。
hRgn
[在] 对一个区域的柄。 功能将窗户的窗户区域设定为这一个区域。
如果 hRgn 是无效力的,功能将窗户区域设定为零。
bRedraw
[在] 叙述系统是否在设定窗户区域之后重划窗户。 如果 bRedraw 是真实的,系统这么做; 另外,它不。
典型地, 你设定 bRedraw 到真实的如果窗户是看得见的。
返回值
如果功能成功,回返价值是非零。
如果功能失败,回返价值是零。
函数二:
HRGN CreateRoundRectRgn(int nLeftRect, int nTopRect, int nRightRect, int nBottomRect, int nWidthEllipse, int nHeightEllipse);
参数表 参数 类型及说明:
X1,Y1 Long,矩形左上角的X,Y坐标
X2,Y2 Long,矩形右下角的X,Y坐标
X3 Long,圆角椭圆的宽。其范围从0(没有圆角)到矩形宽(全圆)
Y3 Long,圆角椭圆的高。其范围从0(没有圆角)到矩形高(全圆)
画一个圆角窗体就用以上两个函数,实例:
SetWindowRgn(handle, CreateRoundRectRgn(0, 0, self.Width, self.Height, 16, 16), True); //即可画一个圆角窗体
圆角窗体二(指点画窗体的某一只角为圆角):
采用函数:CreateRoundRectRgn SetwindowRgn ,CreateRectRgn CombineRgn
前面两个函数上面已经介绍,看看下面的两个参数吧!
函数三
Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
[说明]
创建一个由点X1,Y1和X2,Y2描述的矩形区域
[参数表]
X1,Y1 ---------- Long,矩形左上角X,Y坐标
X2,Y2 ---------- Long,矩形右下角X,Y坐标
[返回值]
Long,执行成功为区域句柄,失败则为零
函数二
Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
[说明]
将两个区域组合为一个新区域
[参数表]
hDestRgn ------- Long,包含组合结果的区域句柄
hSrcRgn1 ------- Long,源区域1
hSrcRgn2 ------- Long,源区域2
nCombineMode --- Long,组合两区域的方法。可设为下述常数
RGN_AND
hDestRgn被设置为两个源区域的交集(集合中的交集)
RGN_COPY
hDestRgn被设置为hSrcRgn1的拷贝
RGN_DIFF
hDestRgn被设置为hSrcRgn1与hSrcRgn2相减后的区域(集合中的差集)
RGN_OR hDestRgn被设置为两个区域的并集(集合中的并集)
RGN_XOR
hDestRgn被设置为两个区域的异或操作后的区域(集合中的异或操作)
[返回值]
Long,下列常数之一:
COMPLEXREGION:区域有互相交叠的边界
SIMPLEREGION:区域边界没有互相交叠
NULLREGION:区域为空
ERRORAPI:不能创建组合区域
实例:
var
Reg1,Reg2: THandle;
begin
Reg1 := CreateRoundRectRgn(0, 0, self.Width, self.Width, 16, 16); //在窗体指定的位置上创建一个圆角句型区域
Reg2 := CreateRectRgn(20, 20, self.Width, self.Width); //在窗体指定的位置上创建一个矩形区域
CombineRgn(Reg1, Reg1, Reg2, RGN_OR); //将Reg1,Reg2两个区域进行合并,Reg1得到Reg1,reg2的集合并集!
SetwindowRgn(handle, Reg1, True); //将以上创建的区域设定成窗体的区域
end;
以上代码是将一个窗体的上面两只角画成圆角,窗体下面的两只角还是直角!

delphi 特殊窗体的更多相关文章
- delphi实现窗体闪烁功能
delphi实现窗体闪烁功能 以前做窗口闪动时都没有考虑到让任务栏上的按钮闪动的问题, 现在一个客户需要任务栏按钮闪动,发现以前使用的flashwindow不能达到要求了, 查找了一下,找到flash ...
- Delphi中窗体的事件
Delphi中窗体的事件 Form窗体可以响应各种各样的时间,在Object Inspector的Events页面中罗列了一大堆,如下图: 下面将要列出一些常用的事件. 1.OnActivate 当窗 ...
- Delphi打开窗体时报"Corrupt Portfolio Stream"
今天在打开一个Delphi窗体时报了这么一个错误: Corrupt Portfolio Stream 查了一下,主要是由于Delphi窗体的*.ddp文件损坏引起的. 解决方法: 删除.ddp 文 ...
- Delphi:窗体自适应屏幕分辨率的改进
在窗体依据屏幕分辨率自适应调整尺度方面,昨天的工作可以说是一个突破点.昨天的工作找到了长期以来我的原有方案的问题所在,这是非常关键的.但是昨天晚上的解决方案并不完美,今天的这个才是比较完美的解决版. ...
- delphi模态窗体最小化会隐藏的问题
在使用delphi创建模态窗体的时候最小化窗体会导致最小化的窗体不可见,再次点击主窗体才会显示. 在这个模态窗体中增加以下函数 procedure WmSysCommand(var msg: TMes ...
- Delphi默认窗体随想
Delphi中新建一个Form或者Frame时,它的字体都是西文习惯,这样就有可能造成在其他机器上由于字体的原因,窗体十分不美观.怎样才能为Delphi设置一个默认窗体,让它的字体Font符合中国习惯 ...
- Delphi 使窗体Showmodal后可以操作其他窗体
对话框ShowModal之后不能操作其它窗口,实际上是因为Windows Disable了其它窗口.所以当你需要在模态对话框中访问其它已经可见的窗口时,需要用EnableWindow API来激活对应 ...
- Delphi 半透明窗体,窗体以及控件透明度
很简单了 现在,适用所有控件和窗体: delphi设置窗口透明 form1.AlphaBlend :=true; //透明form1.AlphaBlendValue :=180; //透明度form1 ...
- DELPHI 异形窗体
一定有很多人看到过一些奇形怪状的窗体,例如一些屏幕精灵.其实实现起来非常容易,做到三点就好啦.下面我使用Delphi做了一个VCL控件(TBmpShape),你只需要指定一幅图片就可以将窗体变成你的图 ...
随机推荐
- Expedition
Expedition 给出n+1个整点\(\{x_i\}\)(保证递增排序),一个司机带着初始油量p,从\(x_{n+1}\)出发,每行驶一个单位长度消耗一个油量,其中\(x_1\sim x_n\)为 ...
- SP8222 NSUBSTR - Substrings(后缀自动机+dp)
传送门 解题思路 首先建出\(sam\),然后把\(siz\)集合通过拓扑排序算出来.对于每个点只更新它的\(maxlen\),然后再从大到小\(dp\)一次就行了.因为\(f[maxlen-1]&g ...
- phpMailer 手册
phpMailer5.0.0属性: 英文地址:http://phpmailer.worxware.com/index.php?pg=properties 属性 (v5.0.0) 类型 默认 描述 $P ...
- DGIM算法
/***************************************************** copyright (C), 2014-2015, Lighting Studio. Co ...
- CSS:CSS 背景
ylbtech-CSS:CSS 背景 1.返回顶部 1. CSS 背景 CSS 背景属性用于定义HTML元素的背景. CSS 属性定义背景效果: background-color background ...
- sea.js模块加载工具
seajs的使用 seajs是一个jS模块加载器,由淘宝前端架构师玉伯开发,它可以解决命名空间污染,文件依赖的问题.可以在一个js文件中引入另外一个js.require('a.js') 1.安装 np ...
- 1.1 React 介绍
1.1.1 React 是什么 React IS A JAVASCRIPT LIBRARY FOR BUILDING USER INTERFACES 来自:React 官方网站 狭义来讲 React ...
- Organizing Containers of Balls
题目 David has several containers, each with a number of balls in it. He has just enough containers to ...
- 二维RMQ hdu 2888
题目:点这里 题意:给出一个n*m的矩阵,然后又Q个询问:每个询问有x1,y1,x2,y2,x1,y1为子矩阵的左上角坐标,x2,y2为右上角的坐标.求此子矩阵中元素最大值,判断最大值是否在子矩阵四个 ...
- 第十二篇 requests模拟登陆知乎
了解http常见状态码 可以通过输入错误的密码来找到登陆知乎的post:url 把Headers拉到底部,可以看到form data _xsrf是需要发送的,需要发送给服务端,否则会返回403错误,提 ...