Win32中使bmp图片镂空

demo1
左边是纯黑底,右边是纯白底

static int LOG_CHANGESIZE = 96;
static int LOG_CHANGESIZE_Height = 48;
HBITMAP hbmp3;
...
	PAINTSTRUCT ps;
	HDC hdc,hMemDC;
	HBITMAP hBitmap, hOldBitmap;
case WM_PANIT:
{
		hbmp3 = (HBITMAP)LoadImage(NULL, "testend.bmp", IMAGE_BITMAP, LOG_CHANGESIZE, LOG_CHANGESIZE_Height, LR_LOADFROMFILE);
		hdc = BeginPaint(hWnd, &ps);
		hMemDC = CreateCompatibleDC(hdc);
		SelectObject(hMemDC, hbmp3);
		BitBlt(hdc, 400, 100, LOG_CHANGESIZE/2, LOG_CHANGESIZE_Height, hMemDC,48, 0, SRCAND);
		BitBlt(hdc, 400, 100, LOG_CHANGESIZE/2, LOG_CHANGESIZE_Height, hMemDC,0, 0, SRCPAINT);
		ReleaseDC(hWnd, hMemDC);
		DeleteDC(hMemDC);
		...
}

最后效果
demo2
在窗体中背景色就去掉了

猜你喜欢

转载自blog.csdn.net/hu421160052/article/details/86511211