怎么解决TransparentBlt()画出的透明位图是倒的啊?给100分!!
yywhu 2003-06-17 03:21:09 CBitmap ImagBmp;
HBITMAP hBitmap = CreateDIBitmap(pDC->m_hDC,(LPBITMAPINFOHEADER)m_lpBmpInfoHeader,(LONG)CBM_INIT,(LPSTR)m_lpBmpInfoHeader+sizeof(BITMAPINFOHEADER)+m_numColors*sizeof(RGBQUAD),(LPBITMAPINFO)m_lpBmpInfoHeader,DIB_RGB_COLORS);
ImagBmp.Attach(hBitmap);
CDC ImgDC;
ImgDC.CreateCompatibleDC(pDC);
CBitmap *pOldImagBmp = ImgDC.SelectObject(&ImagBmp);
pDC->SetStretchBltMode(COLORONCOLOR);
TransparentBlt(pDC->m_hDC, hBitmap, m_DstBimapLtPt.x, m_DstBimapLtPt.y, DstBmpWidth, DstBmpHeight, ImgDC.m_hDC,0, 0, bmpWidth, bmpHeight, RGB(255,255,255));
最后画出的透明位图是倒的,因为我用的是逻辑坐标画图,以前我用StretchDIBBlt()画逻辑坐标的位图,将高改为负的,就可以画出正的位图了。可是我看了msdn说,TransparentBlt()不支持负的长和宽,怎么办啊?各位大侠帮帮忙吧。