////绘制底面路径imagePath 和 相框路径framePicPath
void PaintFramePicture(HDC hDC,RECT rc,CString imagePath,CString framePicPath)
{
CDC *pDC=new CDC;
pDC->Attach(hDC);
CString bmpFile;
HBITMAP hFgBmp;
//画顶层透明位图
CDC DCImage, DCMask;
CBitmap Bmp2;
//Bmp2.LoadBitmap(IDB_BITMAP2);
bmpFile=framePicPath; ///表层框架,相框
hFgBmp = (HBITMAP)
LoadImage(NULL,bmpFile,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_DEFAULTSIZE|LR_CREATEDIBSECTION);
Bmp2.Attach(hFgBmp);
BITMAP bm;
Bmp2.GetBitmap(&bm);
int nWidth=bm.bmWidth,nHeight=bm.bmHeight;
bmpFile=imagePath;//画底层位图//底层内容
CBitmap Bmp1;
hFgBmp = (HBITMAP)
LoadImage(NULL,bmpFile,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_DEFAULTSIZE|LR_CREATEDIBSECTION);
Bmp1.Attach(hFgBmp);
CDC memDC;
memDC.CreateCompatibleDC(pDC);
memDC.SelectObject(&Bmp1);
pDC->BitBlt(0,0,nWidth,nHeight,&memDC,0,0,SRCCOPY);
DCImage.CreateCompatibleDC(pDC);
DCMask.CreateCompatibleDC(pDC);
//把图像装入image DC
DCImage.SelectObject(&Bmp2);
//为“掩码”位图创建一个单色bitmap
CBitmap BmpMask;
//把mask位图装入mask DC
BmpMask.CreateBitmap(nWidth, nHeight, 1, 1, NULL);
//用透明色创建“掩码”位图
DCMask.SelectObject(&BmpMask);
//设置透明色
DCImage.SetBkColor(RGB(0,0,0));
DCMask.BitBlt(0, 0, nWidth, nHeight, &DCImage, 0, 0, SRCCOPY);
pDC->BitBlt(0,0, nWidth, nHeight, &DCImage, 0, 0, SRCINVERT);
pDC->BitBlt(0,0, nWidth, nHeight, &DCMask, 0, 0, SRCAND);
pDC->BitBlt(0,0, nWidth, nHeight, &DCImage, 0, 0, SRCINVERT);
delete pDC;
}