MyException - 我的异常网
当前位置:我的异常网» C++ Builder » [精]Winform不规则窗口如斯简单(采用分层技术)

[精]Winform不规则窗口如斯简单(采用分层技术)

www.MyException.Cn  网友分享于:2013-01-06  浏览:30次
[精]Winform不规则窗口如此简单(采用分层技术)
本帖最后由 lyx_520 于 2012-10-16 15:31:53 编辑
[精]Winform不规则窗口如此简单(采用分层技术)

实现效果图1:

实现效果图2:


实现思路:
其实想实现不规则窗口有很多种方法,可是每种都不太完美,要么有毛边,要么又只能实现简单的不规则窗口。
所以我利用系统API重画了整个窗口,也就是我们所说的绘图层。
可是由于API重画,会造成一个巨大的问题就是,添加在上面的所有控件的Paint方法都不执行了,这样一来可以点击,却看不见。
我所用的解决方法就是,在上面加多一个窗口,也就是控件层,用来放控件,而控件层的背景就是,绘图层对应的位图。
每当其中一个窗口移动时,另一个窗口也会跟着移动,实现一体移动的效果。

操作与小编留言:
小编写代码也是很辛苦的,源码已经上传,顺便攒点积分,见谅见谅。
操作方法也很简单,添加引用一个小编写好的SkinForm.dll。
然后让想实现效果的窗口继承SkinMain就行了。
随后再看下属性窗口,会增加SkinSize,SkinBack,SkinOpacity,SkinPosition,SkinTrankColor,SkinWhetherTank,SkinMobile。

属性的作用:
SkinSize:设置或获取绘图层窗口大小。
SkinBack:设置或获取绘图层窗口背景。
SkinOpacity:设置或获取绘图层窗口透明度(0-255)。
SkinPosition:设置或获取窗口在控件层位置。
SkinTrankColor:绘图层需要透明的颜色。
SkinWhetherTank:绘图层是否开启位图仿透明  注意(SkinOpacity < 255时,此属性为False可达到背景透明,控件不透明的效果。)。
SkinMobile:窗体是否可以移动。

帮个忙,下载后有BUG回馈下,最好给出解决方案!

源码共享:
源码下载
------解决方案--------------------
VS2010 C# express

错误 1 命名空间“Microsoft.VisualBasic”中不存在类型或命名空间名称“PowerPacks”。是否缺少程序集引用? C:\Users\Administrator\Desktop\TankCs\TankCs\FrmMain.Designer.cs 178 39 TankCs

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有