CDC::BitBlt()函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。在复制时按1:1的比例进行,无法实现拉伸和压缩。函数原型:
BOOL BitBlt(
int xDest, //目标矩形区域左上角x坐标
int yDest, //目标矩形区域左上角y坐标
int nWidth, //目标(源)矩形区域逻辑宽度
int nHeight, //目标(源)矩形区域逻辑高度
CDC* pSrcDC, //源设备环境
int xSrc, //源矩形区域左上角x坐标
int ySrc, //源矩形区域左上角y坐标
DWORD dwRop //复制模式
);
CDC::StretchBlt()函数与BitBlt()功能相似,不同的是如果目标矩形区域比源矩形区域大或小,则BitBlt()不会对源矩形区域进行拉伸或压缩, StretchBlt()则多了两个参数来指示源矩形区域大小,在复制时可以自动拉伸和压缩源像素区域,以适合目的矩形区域的尺寸。函数原型:
BOOL StretchBlt(
int xDest, //目标矩形区域左上角x坐标
int yDest, //目标矩形区域左上角y坐标
int nWidthDest, //目标矩形区域逻辑宽度
int nHeightDest, //目标矩形区域逻辑高度
CDC* pSrcDC, //源设备环境
int xSrc, //源矩形区域左上角z坐标
int ySrc, //源矩形区域左上角y坐标
int nSrcWidth, //源矩形区域宽度
int nSrcHeight, //源矩形区域宽度
DWORD dwRop //复制模式
);
CDC::TransparentBlt()函数与StretchBlt()函数功能相似,不同的是其最后一个参数不是复制模式而是指定透明颜色(要过滤的颜色)。eg:
dc.TransparentBlt(0, 0, 91, 87,
m_pBackImg1->m_pBitmapDC, 0, 0, 91, 87, RGB(0xff,0,0));//设置红色为透明色,即过滤掉红色