创建一个透明窗体,事实上是设置windows下窗体的一个扩展窗口风格,在winnt及以后,windows开始支持的一个创建透明窗体的API函数,先看一个效果图:
这一个GDI绘图的数字时钟的窗口。实现了窗口的半透明效果。实现方法如下:
SetLayeredWindowAttributes(hwnd,0,(255*70)/150,LWA_ALPHA);设置了窗体的属性,为透明效果,其中第二个参数为alpha值,即透明度。
另外,我在使用一个游戏引擎做应用时,发现了关于这个API函数的一个问题,我把这个函数的调用放在初始化一些用于渲染的指针变量之前时,在 winxp下运行就会运行出错,而在 vista 下完全正常。
所以,我推断在XP下,这个函数被调用后,直接调用wndproc,游戏资源没有被初始化,所以会出错;而在vista中没有这个问题,可能是Microsoft对这个API函数做了一定修改。