和大家分享一下在半透明窗口中显示标准控件的实现方案。通过层叠窗口可以简单实现半透明与不规则形状窗口的效果,但在其上显示标准控件(控件与文字不透明)却是件比较有挑战的事情,这里会给出一个可行的解决方案。同时实现了一些可重用的窗口类,有相关需求时可以进行引用。先看一下效果图:
一、半透明窗口实现原理
绘制半透明窗口的通常做法是为窗口设置WS_EX_LAYERED属性,通过UpdateLayeredWindow或者SetLayeredWindowAttributes来设置窗口透明度等属性。这两种方法有一些区别、适合的场景也不同。
UpdateLayeredWindowÿ