@MarkRansom:这是一个奇怪的看法。有一个窗口句柄代表桌面,但这并不妨碍你直接在屏幕上绘制。你可以获取到屏幕或显示设备的设备上下文,并使用设备上下文函数直接绘制,包括BitBlt()。 - André Caron
@AndréCaron,我一直以为GetDC(NULL)只是返回桌面的DC。我刚刚用Spy++玩了一下,发现事实要复杂一些,所以我收回了之前说的话。 - Mark Ransom
@MarkRansom:你也可以使用CreateDC()来获取特定显示设备的DC。到目前为止,我从未找到过一份清晰地解释层次结构中所有微妙之处的单一文档(或者至少是哪些元素建立在哪些其他元素之上),但肯定存在“直接”(虚拟)设备/适配器访问。无论如何,显示设备似乎都处于比窗口更低的层次。 - André Caron
1尽管有很多关于如何访问虚拟屏幕设备的讨论,但我认为这并不是这个问题所涉及的。这个问题的前提是SetPixelV已经实现了在屏幕上“直接显示图像”的目标。这个问题是关于速度而不是目的地的。 - Rob Kennedy
BitBlt()
。 - André CaronCreateDC()
来获取特定显示设备的DC。到目前为止,我从未找到过一份清晰地解释层次结构中所有微妙之处的单一文档(或者至少是哪些元素建立在哪些其他元素之上),但肯定存在“直接”(虚拟)设备/适配器访问。无论如何,显示设备似乎都处于比窗口更低的层次。 - André CaronSetPixelV
已经实现了在屏幕上“直接显示图像”的目标。这个问题是关于速度而不是目的地的。 - Rob Kennedy