20 四月, 2007
VC6: 半透明窗口
win2000以后,有新方法SetLayeredWindowAttributes,可以实现此目的。使用SetLayeredWindowAttributes,会影响到整个窗口,包括标题栏以及窗口内的所有控件。这是真正意义上的“半透明窗口”。
如果只是想实现“半透明窗口背景”效果的对话框,可以在首次绘制窗口之前保存被窗口覆盖的那部分的屏幕位图(从显示设备环境CDC对象COPY),然后采用AlphaBlend方法生成半透明效果,再绘制到窗口上。
AlphaBlend API需要msimg32.dll,这个动态库不支持win95/NT。如果想要支持95/NT,可以自己写一个AlphaBlend,毕竟,半透明位图的AC_SRC_OVER 算法相当简单。
最新回复
发表评论



