来自win32gui.GetDC的wxPython wxDC对象

来自win32gui.GetDC的wxPython wxDC对象,wxpython,device,win32gui,bitblit,Wxpython,Device,Win32gui,Bitblit,我正在使用返回int/long的win32gui.GetDC为另一个程序中的对象的窗口句柄获取DC。我需要用python将这个DC blit到内存DC中。我唯一不知道如何从win32gui返回的int/long中获取wxDC派生的对象。据我所知,没有一个wxDC对象允许我将实际的DC句柄传递给它们。这当然让我不能做我的事。有什么方法可以做到这一点吗?据我所知,python中的DC是由于平台变化而抽象的。因此,python中的设备上下文不会直接映射到Windows中的设备上下文,即使许多方法都是直

我正在使用返回int/long的win32gui.GetDC为另一个程序中的对象的窗口句柄获取DC。我需要用python将这个DC blit到内存DC中。我唯一不知道如何从win32gui返回的int/long中获取wxDC派生的对象。据我所知,没有一个wxDC对象允许我将实际的DC句柄传递给它们。这当然让我不能做我的事。有什么方法可以做到这一点吗?

据我所知,python中的DC是由于平台变化而抽象的。因此,python中的设备上下文不会直接映射到Windows中的设备上下文,即使许多方法都是直接的Windows方法调用。要实现这一点,您似乎需要创建自己的DelegateDC类或类似的仅适用于Windows的类,以便可以直接设置DC句柄


可能还有一些方法可以将wxWindow附加到窗口句柄,然后可以从wxWindow获取wxWindowDC…但我无法理解这一点。

我下载了wxWidgets源代码并四处搜索,我认为这会起作用

您需要外部窗口的句柄(HWND),而不是DC

window = wx.Frame(None, -1, '')
window.AssociateHandle(hwnd)
dc = wx.WindowDC(window)

我最近需要做一些类似的事情,得出了相同的结论,但我只花了几个小时,所以我仍然希望有办法。