[MFC] WS_EX_LAYERED 实现透明异形窗口(酷狗歌词、360加速球、窗口边缘阴影)
2017-03-15 09:29
2146 查看
关键词:WS_EX_LAYERED、 UpdateLayeredWindow
PC应用不少都有透明的异形窗口 比如以下程序的效果:
酷狗音乐播放器的歌词窗口(窗口除了歌词内容 其他都是透明的)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/21/7ebb54b498635200d7dc02af3e0890cd)
360桌面加速球
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/21/49453b4e64d2e3525b84b4d9779b1d23)
窗口边缘阴影(窗口四周有一圈渐变阴影 这个不是WINDOWS系统的阴影 是自己实现的)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/21/3d7cd25d705b97565b502d990dbf4b25)
这类窗口的实现 可以采用WS_EX_LAYERED属性(详情请MSDN)。将窗口设置WS_EX_LAYERED和WS_EX_TRANSPARENT属性 并使用函数UpdateLayeredWindow更新界面(注意不是在OnPaint中渲染界面) 即可实现该功能。渲染时如果需要特殊效果 比如歌词的渐变、轮廓、设置透明度
可以使用GDI+来画界面
附带一个高手的demo:
酷狗异形按钮 http://blog.csdn.net/cometnet/article/details/6561912
酷狗歌词窗口 http://blog.csdn.net/cometnet/article/details/37508613
PC应用不少都有透明的异形窗口 比如以下程序的效果:
酷狗音乐播放器的歌词窗口(窗口除了歌词内容 其他都是透明的)
360桌面加速球
窗口边缘阴影(窗口四周有一圈渐变阴影 这个不是WINDOWS系统的阴影 是自己实现的)
这类窗口的实现 可以采用WS_EX_LAYERED属性(详情请MSDN)。将窗口设置WS_EX_LAYERED和WS_EX_TRANSPARENT属性 并使用函数UpdateLayeredWindow更新界面(注意不是在OnPaint中渲染界面) 即可实现该功能。渲染时如果需要特殊效果 比如歌词的渐变、轮廓、设置透明度
可以使用GDI+来画界面
附带一个高手的demo:
酷狗异形按钮 http://blog.csdn.net/cometnet/article/details/6561912
酷狗歌词窗口 http://blog.csdn.net/cometnet/article/details/37508613
相关文章推荐
- (转)xp下实现窗体透明特效/异形窗口SetLayeredWindowAttributes函数
- 使用SetLayeredWindowAttributes API 实现透明窗口
- MFC窗口风格(WS_style/WS_EX_style)
- 半透明: MFC实现父窗口不透明,子窗口半透明效果
- MFC窗口风格 WS_style 和 WS_EX_style
- WS_EX_LAYERED 支持透明扩展属性
- 在MFC和WinForm中分别实现超酷的半透明异形窗口
- mfc如何快速实现无边框窗口阴影效果
- MFC窗口风格 WS_style/WS_EX_style(超详细)
- 透明窗口(窗口上面文字图片等内容不透明)的实现(使用SetLayeredWindowAttributes API函数)
- MFC窗口风格(WS_style/WS_EX_style)
- [用UpdateLayeredWindow实现任意异形窗口]
- 利用BMP通道和UpdateLayeredWindow制作边缘透明不规则窗口
- MFC模拟360悬浮窗加速球窗口
- MFC窗口风格 WS_style/WS_EX_style
- 用SetLayeredWindowAttributes实现窗口透明
- 用SetLayeredWindowAttributes实现窗口透明
- MFC模拟360悬浮窗加速球窗口
- MFC实现父窗口不透明,子窗口半透明效果
- MFC窗口风格 WS_style/WS_EX_style