天天看點

vc 将位圖多餘部分變為透明

||initinstance||

hdc=GetDC(hWnd);

   mdc=CreateCompatibleDC(hdc);//建立一個記憶體dc

   bg=(HBITMAP)LoadImage(NULL,"bg.bmp",IMAGE_BITMAP,600,450,LR_LOADFROMFILE);//加載背景圖

   dra=(HBITMAP)LoadImage(NULL,"dra.bmp",IMAGE_BITMAP,170,99,LR_LOADFROMFILE);//加載要去掉多餘部分的位圖

   MyPaint(hdc);

   ReleaseDC(hWnd,hdc);

||MyPaint||

         SelectObject(mdc ,bg);

BitBlt(hdc,0,0,600,450,mdc,0,0,SRCCOPY);//貼上背景圖

SelectObject(mdc,dra);

BitBlt(hdc,280,320,85,99,mdc,85,0,SRCAND);//用背景圖與前景圖做和運算

BitBlt(hdc,280,320,85,99,mdc,0,0,SRCPAINT);//用背景圖與屏蔽圖做或運算

要點講解,加載背景圖,前景圖,屏蔽圖,先用屏蔽圖與背景圖做與運算,在用前景圖與屏蔽圖做或運算。