如何通过UpdateLayeredWindow实现复杂异形窗口的创建与更新?

2026-03-31 09:430阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2574个文字,预计阅读时间需要11分钟。

如何通过UpdateLayeredWindow实现复杂异形窗口的创建与更新?

目录+引言+Sample+放置子控件+Sample+其他问题+Bug+引言+前面提到,我们可以使用SetWindowRgn或SetLayeredWindowAttributes实现不规则以及半透明效果+对于SetWindowRgn,它通过一个Rgn来设置区域,从而实现区域设置+

目录
  • 引言
  • Sample
  • 放置子控件
    • Sample
  • 其他问题
    • Bug

引言

前面提到,我们可以用SetWindowRgn或SetLayeredWindowAttributes实现不规则以及半透明的效果

对于SetWindowRgn,它通过一个Rgn来设置区域,这个Rgn一般可以从图片中读取,在这张图片中,将不需要显示的区域标记为一种特殊的颜色,这里有个问题,必须保证这种颜色没有被正常的区域使用,否则会被误伤。

如何通过UpdateLayeredWindow实现复杂异形窗口的创建与更新?

为了解决这个问题,可以考虑用两张图片,增加一张单色的掩码图,这种方案带来了额外的管理开销。

阅读全文

本文共计2574个文字,预计阅读时间需要11分钟。

如何通过UpdateLayeredWindow实现复杂异形窗口的创建与更新?

目录+引言+Sample+放置子控件+Sample+其他问题+Bug+引言+前面提到,我们可以使用SetWindowRgn或SetLayeredWindowAttributes实现不规则以及半透明效果+对于SetWindowRgn,它通过一个Rgn来设置区域,从而实现区域设置+

目录
  • 引言
  • Sample
  • 放置子控件
    • Sample
  • 其他问题
    • Bug

引言

前面提到,我们可以用SetWindowRgn或SetLayeredWindowAttributes实现不规则以及半透明的效果

对于SetWindowRgn,它通过一个Rgn来设置区域,这个Rgn一般可以从图片中读取,在这张图片中,将不需要显示的区域标记为一种特殊的颜色,这里有个问题,必须保证这种颜色没有被正常的区域使用,否则会被误伤。

如何通过UpdateLayeredWindow实现复杂异形窗口的创建与更新?

为了解决这个问题,可以考虑用两张图片,增加一张单色的掩码图,这种方案带来了额外的管理开销。

阅读全文