我正在尝试在一个MFC应用程序中进行双缓冲,并试图使用GDI+在内存DC上绘制。然而,虽然我调用了CreateCompatibleDC()函数,但我只得到了一张单色图像。以下是代码:
CDC bufferDC;
CBitmap bufferBitmap;
bufferDC.CreateCompatibleDC(&dc);
bufferBitmap.CreateCompatibleBitmap(&bufferDC, 300, 300);
bufferDC.SelectObject(bufferBitmap);
Graphics g(bufferDC);
g.Clear(Color::Green);
dc.BitBlt(0, 0, 300, 300, &bufferDC, 0, 0, SRCCOPY);
我看到的不是一个绿色的区域,而是一个由黑白点阵组成的矩形。即使在执行g.Clear()命令后,我甚至尝试将位图保存到磁盘上,它确实是一个1位深度的文件。
有任何想法是怎么出了问题?谢谢。