MFC GDI如何画半透明图形 CDC::AlphaBlend之前要将位图编辑为32位BMP格式,并编辑需要透明的A通道信息 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 复杂一点可以遍历像素,将每个像素RGB值后增加一个A通道透明值,再用AlphaBlend输出 也就是说只能根据源位图Alpha来设置通道值以作为AlphaBlend的参数,然后用AlphaBlend作用于目标矩形吗?没有更简单的方法吗 CDC memdc;CBitmap bmp,*pOldBitmap;memdc.CreateCompatibleDC(pDC);bmp.CreateCompatibleBitmap(pDC,300,200);pOldBitmap=memdc.SelectObject(&bmp);memdc.FillSolidRect(0,0,300,200,RGB(0,0,255));BLENDFUNCTION bf;bf.BlendOp=AC_SRC_OVER;bf.BlendFlags=0;bf.SourceConstantAlpha=0x7f;bf.AlphaFormat=0;pDC->AlphaBlend(0,0,300,200,&memdc,0,0,300,200,bf);memdc.SelectObject(pOldBitmap); AlphaBlend用GDI实现起来相当麻烦。代码就一长串,我搞过。有GDI+干嘛不用TransparentBlt,设置一种颜色透明,什么问题都搞定了 现在才知道有TransparentBlt这个函数,不过好像也是GDI的,不管了,用了再说 MFC中对话框中绘图 VS2005的一个关于_T()宏的问题 一些问题 有关进程/线程 帮着顶的也给分 atl参数类型的问题,在线等... 简单的工具条问题,大家来抢分 高手帮帮忙,关于String Table 的问题 救救刚入门者!! 用atl建立一个服务程序,能否使用windows api函数? mfc dll中如何使用webbrowser控件 问个一直不解的问题? 截取登陆界面后,任务栏的显示问题?? 关于cab打包中INF文件制定cab安装路径的问题
CBitmap bmp,*pOldBitmap;
memdc.CreateCompatibleDC(pDC);
bmp.CreateCompatibleBitmap(pDC,300,200);
pOldBitmap=memdc.SelectObject(&bmp);
memdc.FillSolidRect(0,0,300,200,RGB(0,0,255));
BLENDFUNCTION bf;
bf.BlendOp=AC_SRC_OVER;
bf.BlendFlags=0;
bf.SourceConstantAlpha=0x7f;
bf.AlphaFormat=0;
pDC->AlphaBlend(0,0,300,200,&memdc,0,0,300,200,bf);
memdc.SelectObject(pOldBitmap);
用GDI实现起来相当麻烦。代码就一长串,我搞过。
有GDI+干嘛不用TransparentBlt,设置一种颜色透明,什么问题都搞定了