[2013.9.6]说说Win7的Aero效果

最近看到别人写的一个例程,就是把控制台弄成了全透明,我把源码下载下来做了研
究。

其实从Vista版本之后,WindowsAPI里面增加了几个函数,用于Aero效果的实现。有
两个最主要的:DwmExtendFrameIntoClientArea和DwmIsCompositionEnabled。

DwmIsCompositionEnabled用于检测系统的桌面组合功能是否打开。
DwmExtendFrameIntoClientArea用于开启控制窗体的玻璃效果,他需要一个名为
MARGINS的结构作为参数,表达的是窗口四周的边框。我们实际上就是要非客户区的
边框往内扩展,等到MARGINS足够大之后,就变成全玻璃特效的了。

下面是两个实例:

1.c++下使控制台变透明

效果 如果是win7家庭版没有透明特效是这个样子:

旗舰版等有透明特效的是这个样子

2.c#下使窗体变透明

这个事先要声明一些东西作为准备

然后在构造函数下调用即可

效果

posted @ 2014-05-16 18:45  绝不原创的飞龙  阅读(5)  评论(0编辑  收藏  举报  来源