AlphaBlend与TransparentBlt能组合使用么?
2017-01-18 22:37
239 查看
如题,下面的就是代码了,TransparentBlt能使图片一个色透明,而AlphaBlend能使整个图片半透明,但就是想不出怎么一起使用,还是,这方法是不可能实现的?最好高手们用一个图片做一个实例出来,嗯,这样比较容易明白吧。
CDC m_cdc;
CBitmap m_bitmap;
CDC *pwnd = GetDC();
BLENDFUNCTION bl;
bl.BlendOp=AC_SRC_OVER;
bl.BlendFlags=0;
bl.AlphaFormat=0;
bl.SourceConstantAlpha=0;
m_cdc.CreateCompatibleDC(pwnd);
CDC m_cdc2;
CBitmap m_bitmap2;
m_cdc2.CreateCompatibleDC(pwnd);
m_bitmap2.LoadBitmap(IDB_TRUE4);
CBitmap *oldbitmap2 = m_cdc2.SelectObject(&m_bitmap2);
//pwnd->BitBlt(0,0,150,150,&m_cdc2,0,0,SRCCOPY);
//TransparentBlt(pwnd->m_hDC,50,50,150,150,m_cdc2,0,0,150,150,RGB(255,0,0));//=============这个能使图片的一个颜色透明
AlphaBlend(pwnd->m_hDC,50,50,150,150,m_cdc2,0,0,150,150,bl);//=============这个能使图半透明
m_cdc2.SelectObject(oldbitmap2);
CDC m_cdc;
CBitmap m_bitmap;
CDC *pwnd = GetDC();
BLENDFUNCTION bl;
bl.BlendOp=AC_SRC_OVER;
bl.BlendFlags=0;
bl.AlphaFormat=0;
bl.SourceConstantAlpha=0;
m_cdc.CreateCompatibleDC(pwnd);
CDC m_cdc2;
CBitmap m_bitmap2;
m_cdc2.CreateCompatibleDC(pwnd);
m_bitmap2.LoadBitmap(IDB_TRUE4);
CBitmap *oldbitmap2 = m_cdc2.SelectObject(&m_bitmap2);
//pwnd->BitBlt(0,0,150,150,&m_cdc2,0,0,SRCCOPY);
//TransparentBlt(pwnd->m_hDC,50,50,150,150,m_cdc2,0,0,150,150,RGB(255,0,0));//=============这个能使图片的一个颜色透明
AlphaBlend(pwnd->m_hDC,50,50,150,150,m_cdc2,0,0,150,150,bl);//=============这个能使图半透明
m_cdc2.SelectObject(oldbitmap2);
相关文章推荐
- php菜鸟日记1
- 关于小球碰撞判断的一些问题··在线等
- c++ 中的继承
- 对话框程序,按下按钮后交换数据的问题
- PAT甲级1084
- 集合框架_HashSet集合的add()方法的源码
- MFC 关于RadioButton
- 将maven项目直接部署到tomcat上
- Linux下pwd命令
- 命题逻辑几道题
- Amazon Alexa系列介绍(2)--AVS设计指南
- Java NIO Channel详解
- JAVA动态代理实现(一)
- java基础语法的思维图!!!
- Jenkins+ Gradle +Lint对Android工程源码进行静态代码分析
- MFC ComboBox控件中EditChange无反应
- Linux内核工程导论——linux学习和职业曲线
- REST 架构该怎么生动地理解
- LeetCode 415. Add Strings
- Intersection of Two Linked Lists