gpt4 book ai didi

c++ - GDI+ 仅在内存 DC 上绘制单色

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:14:50 25 4
gpt4 key购买 nike

我正在尝试在 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);

我看到的不是绿色 block ,而是抖动的黑白点矩形。我什至尝试在 g.Clear() 调用后将位图保存到磁盘。它确实是一个1位深度的文件。

知道哪里出了问题吗?谢谢。

最佳答案

一个常见的错误。内存 DC 具有选择到其中的位图的属性,无论它是用什么兼容性创建的。选择到 DC 中的默认位图是单色的。如果您创建与该 DC 兼容的位图,它也将是单色的。

创建与原始 DC 兼容的位图,而不是内存 DC。

关于c++ - GDI+ 仅在内存 DC 上绘制单色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9318883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com