创建win32透明窗体

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

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

 

     这一个GDI绘图的数字时钟的窗口。实现了窗口的半透明效果。实现方法如下:

 

 

     SetLayeredWindowAttributes(hwnd,0,(255*70)/150,LWA_ALPHA);设置了窗体的属性,为透明效果,其中第二个参数为alpha值,即透明度。

     另外,我在使用一个游戏引擎做应用时,发现了关于这个API函数的一个问题,我把这个函数的调用放在初始化一些用于渲染的指针变量之前时,在 winxp下运行就会运行出错,而在 vista 下完全正常。

     所以,我推断在XP下,这个函数被调用后,直接调用wndproc,游戏资源没有被初始化,所以会出错;而在vista中没有这个问题,可能是Microsoft对这个API函数做了一定修改。

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值