创建一个透明窗体,事实上是设置windows下窗体的一个扩展窗口风格,在winnt及以后,windows开始支持的一个创建透明窗体的API函数,先看一个效果图:

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

本文介绍了如何在Windows环境下利用API函数创建一个透明窗体,特别是在WinNT及后续版本中,通过设置扩展窗口风格来实现半透明效果。示例代码展示了如何创建带有透明度的GDI数字时钟窗口,并探讨了在不同操作系统版本(如XP和Vista)上可能出现的问题,特别是游戏引擎应用中的兼容性问题。
最低0.47元/天 解锁文章
816

被折叠的 条评论
为什么被折叠?



