一幅背景是黑的,一幅背景是白的。把两幅位图导入到资源中,假如ID分别为IDB_BMP1和IDB_BMP2。然后定义两个CBitmap类型的变量bmp1和bmp2,分别加载这两幅位图资源。即: bmp1.LoadBitmap(IDB_BMP1); bmp2.LoadBitmap(IDB_BMP2); 然后在OnDraw或者OnPaint中显示(假如是OnPaint): CPaintDC dc(this); // device context for painting CDC memDC; memDC.CreateCompatibleDC(&dc); CBitmap* pbmpOld; pbmpOld = memDC.SelectObject(&bmp1); dc.BitBlt(0, 0, 36, 36, &memDC, 0, 0, SRCPAINT); // 注意最后一个参数 memDC.SelectObject(&bmp2); dc.BitBlt(0, 0, 36, 36, &memDC, 0, 0, SRCAND); // 注意最后一个参数 memDC.SelectObject(pbmpOld); memDC.DeleteDC(); 这样就可以达到目的了,需要注意的是黑色背景的图使用的是SRCPAINT,白色背景的图使用的参数是SRCAND,不要把顺序搞错了就行了。
MFC中图片背景透明色问题
最新推荐文章于 2022-08-18 16:21:38 发布