http://www.cnblogs.com/jianu/archive/2010/07/03/1770293.html透明窗体的 一种效果及实现  本来想加个仿QQ截屏的
可惜调试截屏程序的时候 多次蓝屏  只好放弃

解决方案 »

  1.   

    仔细看了.写得很好,但我个人认为,这种多窗体叠加方案已经是很多年前的方式了.多窗体叠加早期被用于实现桌面秀和一些假皮肤.随着不同的软件越来越大,用户启动的软件越来越多,占用资源越来越多,叠层窗体的延迟感和脱离感被放大.后来我想了一下这方面的原因,一是对WINDOWS2000之后的新API的陌生,二是代码量的简化.相对来说,效果越好,代码量越多,而通常情况下程序员不大愿意为了显示一个静态的透明效果而写几千字的代码.我个人写的时候是宁可多代码,不可少效果.因为我做过多年平面设计师,对界面效果可谓是像素级要求,而无论是看别人的作品还是自己实现的界面.因为追求细节上的近似完美.楼主提供的叠层窗体方案显然不可行,当然也是考虑到互动的便利性.相比单窗体而言,交互功能在叠层窗体上则要写多次或是多个补充,而单窗体则易于控制和实现.我个人建议楼主如果时间精力足够的情况下去关注一下层窗体的实现,API UpdateLayerdWindow.系统给予了很好的方法,应充分利用.当然,如果设定的目标用户系统是VISTA/WIN7,或是制定未来的界面实现目标,可能更好的方向是WPF.我对编程纯粹业余,所以对WPF实在是无法学会,不得已,用.NET2.0的层窗体和GDI+来做WPF效果.
    哦忘了一句:层窗体的实现免去了控件的paint过程(因为本身不发生),这为绘制的速度带来了巨大的提升,当然,实现还得自己一句句代码去实现了.
      

  2.   


    多谢楼上中肯的建议  回头我研究下你说的 UpdateLayerdWindow api