请问如何在一幅位图上显示另一幅图?我已经将一幅100M的位图作为背景用SetDIBitsToDevice()函数显示出来了,现要在上面再显示一个小的位图,不知道有什么好的方法?注:背景位图很小(只有几兆)的时候,我用下面的语句可以实现,但背景位图很大时就不能下面的代码了。CClientDC dc(this);
m_dcMem.CreateCompatibleDC( &dc );pOldBitmap=m_dcMem.SelectObject (&Bitmap);
dc.BitBlt(offsetx,offsety,m_size.cx-10,m_size.cy-10, &m_dcMem,sourcex, sourcey,SRCCOPY);pOldBitmap=m_dcMem.SelectObject (&bmpCar);
dc.BitBlt(offsetx,offsety,m_size.cx-10,m_size.cy-10, &m_dcMem,sourcexcar, sourceycar,SRCCOPY);
m_dcMem.CreateCompatibleDC( &dc );pOldBitmap=m_dcMem.SelectObject (&Bitmap);
dc.BitBlt(offsetx,offsety,m_size.cx-10,m_size.cy-10, &m_dcMem,sourcex, sourcey,SRCCOPY);pOldBitmap=m_dcMem.SelectObject (&bmpCar);
dc.BitBlt(offsetx,offsety,m_size.cx-10,m_size.cy-10, &m_dcMem,sourcexcar, sourceycar,SRCCOPY);
dc.BitBlt(offsetx,offsety,m_size.cx-10,m_size.cy-10, NULL,sourcexcar, sourceycar,SRCCOPY);
dc.BitBlt(offsetx,offsety,m_size.cx-10,m_size.cy-10, NULL,sourcex, sourcey,SRCCOPY);pOldBitmap=dc->SelectObject (&bmpCar);
offsetx = 100;
offsety = 100;
dc.BitBlt(offsetx,offsety,m_size.cx-10,m_size.cy-10, NULL,sourcexcar, sourceycar,SRCCOPY);
dc.BitBlt(offsetx,offsety,m_size.cx-10,m_size.cy-10, NULL,sourcex, sourcey,SRCCOPY);ddmor(小明)的意思是否是背景图用SetDIBitsToDevice()显示以后,上面的小图用BitBlt()指定位置和宽高来显示?
CDC* pDC = &dc; CRect rcDest;
GetClientRect(&rcDest);
rcDest.NormalizeRect(); cxClient =rcDest.Width()-5;
cyClient =rcDest.Height()-5; SetDIBitsToDevice (hdc,
0,0,
cxClient, cyClient,
sourcex, sourcey,
0, cyDib, pBits, pbmi, DIB_RGB_COLORS) ; pOldBitmap=dc.SelectObject (&bmpCar);
dc.BitBlt(offsetx,offsety,cxClient-10,cyClient-10, NULL,
sourcexcar, sourceycar,SRCCOPY);