如何通过UpdateLayeredWindow实现复杂异形窗口的创建与更新?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2574个文字,预计阅读时间需要11分钟。
目录+引言+Sample+放置子控件+Sample+其他问题+Bug+引言+前面提到,我们可以使用SetWindowRgn或SetLayeredWindowAttributes实现不规则以及半透明效果+对于SetWindowRgn,它通过一个Rgn来设置区域,从而实现区域设置+
目录
- 引言
- Sample
- 放置子控件
- Sample
- 其他问题
- Bug
引言
前面提到,我们可以用SetWindowRgn或SetLayeredWindowAttributes实现不规则以及半透明的效果
对于SetWindowRgn,它通过一个Rgn来设置区域,这个Rgn一般可以从图片中读取,在这张图片中,将不需要显示的区域标记为一种特殊的颜色,这里有个问题,必须保证这种颜色没有被正常的区域使用,否则会被误伤。
为了解决这个问题,可以考虑用两张图片,增加一张单色的掩码图,这种方案带来了额外的管理开销。
本文共计2574个文字,预计阅读时间需要11分钟。
目录+引言+Sample+放置子控件+Sample+其他问题+Bug+引言+前面提到,我们可以使用SetWindowRgn或SetLayeredWindowAttributes实现不规则以及半透明效果+对于SetWindowRgn,它通过一个Rgn来设置区域,从而实现区域设置+
目录
- 引言
- Sample
- 放置子控件
- Sample
- 其他问题
- Bug
引言
前面提到,我们可以用SetWindowRgn或SetLayeredWindowAttributes实现不规则以及半透明的效果
对于SetWindowRgn,它通过一个Rgn来设置区域,这个Rgn一般可以从图片中读取,在这张图片中,将不需要显示的区域标记为一种特殊的颜色,这里有个问题,必须保证这种颜色没有被正常的区域使用,否则会被误伤。
为了解决这个问题,可以考虑用两张图片,增加一张单色的掩码图,这种方案带来了额外的管理开销。

