UpdateLayeredWindow有什么用?怎么觉得半透明用SetLayeredWindowAttributes就够用了呢?

w_anthony 2007-10-23 10:39:24
是不是SetLayeredWindowAttributes只能对所有像素使用同一种透明度,
但UpdateLayeredWindow可以使用位图的alpha通道对不同像素设置不同的透明度呢?
另外问一下,这两个API win98系统中没有,如果简单的改变_WIN32_WINNT的宏定义的值来使得编译通过,
会不会导致在win98下运行时报“无法找到输入点”之类的错误而运行不了?我是期望在win98下可以无半透明效果,
但至少要让程序跑起来。如果会出错的话,那就只能GetProcAddress了。
...全文
631 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
crumpy 2007-10-23
  • 打赏
  • 举报
回复
一般SetLayeredWindowAttributes()就够用了吧, UpdateLayeredWindow()需要你提供窗口显示所有的东西, 更灵活.
"无法找到输入点"不保证, 最好找个98试一试了.
w_anthony 2007-10-23
  • 打赏
  • 举报
回复
谢谢,那个例子我之前也稍稍看了一下,我现在只要需要相同透明度的就够了,也就是用了SetLayeredWindowAttributes就直接完成完成任务了,系统是xp-sp2。
但是有些人又说要配合UpdateLayeredWindow使用才可以,所以我不确定win2000之类的系统是否必须要UpdateLayeredWindow。
那部分代码看了以后,感觉UpdateLayeredWindow似乎就是可以根据位图像素的Alpha通道设置不同的透明度,如果UpdateLayeredWindow就只是这个用处的话,那我就不作改动了。
不过最重要的还是那个到底会不会出现“无法找到输入点”的问题,万一出现了,问题就比较严重了。
crumpy 2007-10-23
  • 打赏
  • 举报
回复
这里有个例子: http://www.codeproject.com/gdi/pxalphablend.asp
w_anthony 2007-10-23
  • 打赏
  • 举报
回复
98不支持,返回NULL,所以就可以不用执行阿。就怕静态链接过去报“无法找到输入点”的错误。
手头没有98的机器,也不好测试,所以希望有经验的朋友来说明一下。
对了,那个UpdateLayeredWindow是我所想的那样吗?
crumpy 2007-10-23
  • 打赏
  • 举报
回复
感觉如果98下不支持的话, GetProcAddress()返回的也是NULL了
w_anthony 2007-10-23
  • 打赏
  • 举报
回复
找了一台98的机器试了一下,发现果然报了“无法找到输入点”的错误,只好换成GetProcAddress去取地址了,问题解决。

16,467

社区成员

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

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

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