那位大虾帮我看看哦!(是关于位图的问题)
我的意图是:显示一幅圆形的位图,我创建一个单文档,
在OnDraw()中加入如下代码:
CBitmap bitmap,mbitmap;
RECT rect;
CDC bMem,mMem;
BITMAP bm;
GetClientRect(&rect);
CBrush* pOldBrush=(CBrush*)pDC->SelectStockObject(BLACK_BRUSH);
pDC->Rectangle(&rect);
pDC->SelectObject(pOldBrush);
bitmap.LoadBitmap(IDB_BITMAP);
bitmap.GetBitmap(&bm);
bMem.CreateCompatibleDC(NULL);
bMem.SelectObject(bitmap);
mbitmap.CreateBitmap(bm.bmWidth,bm.bmHeight,1,1,NULL);
mMem.CreateCompatibleDC(NULL);
mMem.SelectObject(mbitmap);
pDC->SelectObject(GetStockObject(BLACK_BRUSH));
pDC->Rectangle(0,0,bm.bmWidth,bm.bmHeight);
pDC->SelectObject(GetStockObject(WHITE_BRUSH));
pDC->Ellipse(0,0,bm.bmWidth,bm.bmHeight);
pDC->MaskBlt(0,0,bm.bmWidht,bm.bmHeight,&bMem,0,0,mbitmap,1,1,SRCAND);
bitmap.DeleteObject();
mbitmap.DeleteObject();
bMem.DeleteDC();
mMem.DeleteDC();
不知道这样行不行?编译能通过,但是没有想要的结果!
对哪个光栅操作,我不知道用SRCAND 是否正确?
请高手们指点指点!!!
小子在这里先谢谢各位了!
(我只能给这么多分)(苦笑)!