求助——如何实现半透明的窗体?

info_xsd 2000-08-13 11:56:00
在VC中,如何实现半透明的窗体?
向各位高手求助,谢谢!!!
...全文
229 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Maxwell 2000-08-15
  • 打赏
  • 举报
回复
你用2000做的话,我找到一个函数long SetLayeredWindowAttributes(HWND hwnd, long crKey, char bAlpha, long dwFlags);
第一个参数是窗口句柄(必须有WS_EX_LAYERED风格).
第二个参数是指定透明颜色.
第三个参数为Alpha值.
第四个参数为透明方式:LWA_COLORKEY使用crKey作为透明色;LWA_ALPHA使用Alpha作为混合比例.

还有,前面也有一些讨论这个问题的,用"半透明"查一下,对你也有帮助.
Larky 2000-08-13
  • 打赏
  • 举报
回复
总的原理是先把背景的图解下来然后再作班色调处理,然后和自己的背景和起来作为窗口的背景显示出来!
shines77 2000-08-13
  • 打赏
  • 举报
回复
在哪个系统上都可以啊,不一定要Win2000,只要支持Windows API就可以了,就是按照Lythm的方法做,对颜色RGB分量做Alpha Blending处理,csdn的文档里面有Alpha的相关资料(是用DirectX写的)。
就是简单的像素合成嘛,如果不想用DirectX写就用API了,好运。
info_xsd 2000-08-13
  • 打赏
  • 举报
回复
在WINDOWS2000上做
HHHH 2000-08-13
  • 打赏
  • 举报
回复
alpha blending?
Maxwell 2000-08-13
  • 打赏
  • 举报
回复
你在什么系统下做?
铜戈 2000-08-13
  • 打赏
  • 举报
回复
半透明混合(alpha blending)
将原图的rgb分量分别乘上alpha值再加上目标图对应颜色乘上alpha的反值的结果再分别除以256
(移位8)然后再将各分量重新合成得到的就是班透明效果

用getdesktopdc得到窗口句丙
进尔得到desktop的像素值经过alpha处理在贴到窗体上

16,470

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧