为了使用位图,创建了一个当前DC的兼容CDC对象,然后将位图对象选择进兼容CDC对象,再用BitBlt将兼容CDC对象贴到当前DC里,可以显示图像。但如果创建两个兼容CDC对象dc1,dc2,,先将位图对象选择进一个兼容对象dc1里,再用BitBlt贴到另一个兼容对象dc2里,再将dc2用BitBlt贴到当前DC里,为什么就看不到图像了?代码如下:(凭记忆写出来的,可能有的地方有些出入,大致意思如此)
OnPaint()
{
CPaintDC dc(this); CDC dc1,dc2; dc1.CreateComp...DC(&dc);//创建兼容DC
dc2.CreateComp...DC(&dc1);//创建兼容DC,如果将参数dc1,改为dc,效果一样。 CBitmap Bitmap;
Bitmap.LoadBitmap(IDB_BMP);
dc1.SelectObject(&Bitmap);
dc2.BitBlt(...&dc1,...SRCCOPY);//参数太多记不清了,只写两个关键的
dc.BitBlt(...&dc2,...SRCCOPY);
}
OnPaint()
{
CPaintDC dc(this); CDC dc1,dc2; dc1.CreateComp...DC(&dc);//创建兼容DC
dc2.CreateComp...DC(&dc1);//创建兼容DC,如果将参数dc1,改为dc,效果一样。 CBitmap Bitmap;
Bitmap.LoadBitmap(IDB_BMP);
dc1.SelectObject(&Bitmap);
dc2.BitBlt(...&dc1,...SRCCOPY);//参数太多记不清了,只写两个关键的
dc.BitBlt(...&dc2,...SRCCOPY);
}
需要CreateCompatibleBitmap(...)选入合适的位图尺寸才行,
{
CPaintDC dc(this); CDC dc1 dc1.CreateComp...DC(&dc);//创建兼容DC
CBitmap Bitmap;
Bitmap.LoadBitmap(IDB_BMP);
dc1.SelectObject(&Bitmap);
dc1.BitBlt(...&dc1,...SRCCOPY);//参数太多记不清了,只写两个关键的
dc.BitBlt(...&dc2,...SRCCOPY);
}