我应该参考什么上下文,以便我能够在任何应用程序或 window 之上使用 BitBlt?是否有 "general" 上下文引用显示?

What context should I refer to so I am able to BitBlt on top of any application or window? Is there a "general" context which refer to display?

所以我是 win32ui 的新手,基本上才刚刚开始。我曾经使用 BitBlt 机智 python win32api 模块,据我记得在显示顶部绘制(所以任何应用程序 - 如果它们被打开)我必须获得特定的上下文句柄。但是我的记忆是模糊的,不知道它是简单的 NULL 还是一些特定的上下文? Null 似乎不起作用,所以我想知道如何获得该一般上下文?我真的想避免创建完全透明的非阻塞 window.

GetDC API 允许您获取任何给定 window 的设备上下文。或者,

If [hWnd] is NULL, GetDC retrieves the DC for the entire screen.

您可以使用整个屏幕的设备上下文来可靠地读取(restrictions)。但是,为您不拥有的 window 渲染到设备上下文中并不可靠。虽然它不会立即失败,但 window 所有者可以随时覆盖您的渲染。您甚至都无法收到有关这方面的通知。

如果您需要在屏幕顶部呈现,您必须自己创建一个最顶部(透明)window,并使用其设备上下文。确保您提出以下问题:What if two programs did this?