MFC GDI怎么画半透明图形

MFC GDI如何画半透明图形
整个图半透明我会,但是部分半透明不会,麻烦大家指教。
我的需求是这样的:在已有的图片上画一个半透明的矩形。如果用全部图片半透明覆盖在源图片上应该能产生这种效果,但是比较麻烦。GDI+中好像可以创建半透明画刷,不知GDI中怎么弄呢?BitBlt的颜色位运算能实现吗?谢谢

------解决方案--------------------
CDC::AlphaBlend
之前要将位图编辑为32位BMP格式,并编辑需要透明的A通道信息
------解决方案--------------------
复杂一点可以遍历像素,将每个像素RGB值后增加一个A通道透明值,再用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,设置一种颜色透明,什么问题都搞定了