关于Windows API的AlphaBlend函数的问题

IONPhantom 2006-08-28 03:12:54
我自己写的程序使用AlphaBlend没有问题,不管桌面色深是16bit还是32bit,能够正常工作。
由于工作需要,我需要用别人写好的一套GDI,可是如果桌面是16bit的时候AlphaBlend调用失败,GetLastError是ERROR_INVALID_PARAMETER,但是如果桌面时32bit的时候却调用正常,现在肯定的是图没有问题,那么最有可能出现问题的地方会是哪里呢?
...全文
208 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
IONPhantom 2006-09-06
  • 打赏
  • 举报
回复
to dandycheung(珠穆朗玛) :
不是这样的,我自己尝试过,我在桌面为16bit色深的情况下建立了兼容DC,使用AlphaBlend就没有问题,但是我用他的程序就不行
superarhow 2006-08-31
  • 打赏
  • 举报
回复
通常使用AlphaBlend失败的原因都是源图大小、要画的大小和目标图大小不匹配造成的。函数本身没有问题。例如源图是10*10的,却指定成画11*10这样大,用BitBlt不会出错但用AlphaBlend就会出错。应当仔细检查参数。
dandycheung 2006-08-31
  • 打赏
  • 举报
回复
AlphaBlend 能工作的前提是他所作用于之上的位图都应该有32Bit的色深,只有这样才能有保存每个像素的Alpha值的空间。我怀疑你传入了与当前屏幕兼容的DC。如果是这样的话,尝试创建内存DC,将要处理的32Bit位图选入到内存DC中再试。希望对你有帮助。
hhyytt 2006-08-28
  • 打赏
  • 举报
回复
不是很好用.
可以使用函数模拟这个功能.前后两张图的RGB分量按透明度计算.
healer_kx 2006-08-28
  • 打赏
  • 举报
回复
AlphaBlend好像是可能会在某些情况下失败,以前一个大牛告诉我的。
所以我都尽量不用他。。。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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