请教一个AlphaBlend的问题。我是第一次使用,是不是我用错了?

howard 2006-03-28 11:16:04
dc->BitBlt(
m_CurRC.TopLeft().x,
m_CurRC.TopLeft().y,
bmpWidth,
bmpHeight,
dcDest,//这里放着我前面准备好的图象,先贴在屏幕上
0,
0,
SRCCOPY);
//如果只是单独的bitblt是没有问题的。
AlphaBlend(//
dc->m_hDC,
m_CurRC.TopLeft().x,
m_CurRC.TopLeft().y,
bmpWidth,
bmpHeight,
dcMem->m_hDC,//这里是放着我准备透明的图象
0,
0,
bmpWidth,
bmpHeight,
m_bf);

先把dcDest的图象BITBLT在屏幕上,然后在dcMem透明覆盖一下,可是这样做会把我原来BITBLT的图象也一起透明了,应该怎么做才能只让dcMem的图象透明啊。原来的图象不要透明
...全文
114 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gomoney 2006-03-28
  • 打赏
  • 举报
回复
帮顶.
howard 2006-03-28
  • 打赏
  • 举报
回复
BLENDFUNCTION m_bf;

m_bf.BlendOp = AC_SRC_OVER;
m_bf.BlendFlags = 0;
m_bf.SourceConstantAlpha =100;
m_bf.AlphaFormat = 0 ;
pomelowu 2006-03-28
  • 打赏
  • 举报
回复
创建内存DC也需要创建内存位图并且选入
howard 2006-03-28
  • 打赏
  • 举报
回复
pomelowu(羽战士) ( ) 信誉:193
我这样做了,好象没有用诶
pomelowu 2006-03-28
  • 打赏
  • 举报
回复
再建一个内存DC,把dcDest的图象BitBlt上去,然后把dcMem的图像AlphaBlend上去,然后把这个内存DC的图像BitBlt到屏幕上
Kudeet 2006-03-28
  • 打赏
  • 举报
回复
http://www.fengyuan.com/article/alphablend.html
howard 2006-03-28
  • 打赏
  • 举报
回复
自己UP

19,469

社区成员

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

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