有 HDCA,它是这样创建的:
HDCA = GetDC(hwnd);
HDCB = CreateCompatibleDC(HDCA);
HBitmap = CreateCompatibleBitmap(HDCA,620, 700);
HGDIOBj = SelectObject(HDCB,HBitmap);
有没有办法将多个图像(例如,不同的位图,或使用 SetPixel 方法绘制的两个不同的 HDC)绘制到一个 HDC 中?
有 HDCA,它是这样创建的:
HDCA = GetDC(hwnd);
HDCB = CreateCompatibleDC(HDCA);
HBitmap = CreateCompatibleBitmap(HDCA,620, 700);
HGDIOBj = SelectObject(HDCB,HBitmap);
有没有办法将多个图像(例如,不同的位图,或使用 SetPixel 方法绘制的两个不同的 HDC)绘制到一个 HDC 中?
当然有这样一种方式,而且没有一种。然而,通常不是立即二对一,而是先复制一个位图,然后再施加第二个。查看函数列表,特别注意函数
BitBlt、StretchBlt、MaskBlt和PlgBlt。最困难的部分是处理光栅操作代码 (ROP)。不幸的是,MS 文档中只给出了几个运行值。弄清楚它们是如何获得的,并学习如何创建自己的 ROP 代码会更正确。
既然您决定深入研究 WinGDI,我强烈建议您阅读冯远的《Windows 图形编程》一书。现在可以以 PDF 格式下载,您可以在搜索引擎的第一个链接中轻松找到它。这是 WinGDI 的最佳指南,包含大量示例,以及对重要点的很好解释。