我正在使用win32gui.GetDC获取另一个程序中对象的窗口句柄的DC,它返回一个int / long。我需要将此DC插入到python中的内存DC中。我唯一无法弄清楚如何做的是从win32gui返回的int / long中获取一个wxDC派生对象。 wxDC对象中没有一个允许我从我能告诉的内容中将实际的DC句柄传递给它们。这当然阻止我做我的快乐。有没有办法做到这一点?
答案 0 :(得分:1)
我下载了wxWidgets源码并进行挖掘,我认为这样可行。
您需要外部窗口的句柄(HWND),而不是DC。
window = wx.Frame(None, -1, '')
window.AssociateHandle(hwnd)
dc = wx.WindowDC(window)
答案 1 :(得分:0)
据我所知,python中的DC由于平台变化而被抽象化。因此,即使许多方法是直接的Windows方法调用,python中的设备上下文也不会直接映射到Windows中的设备上下文。为了实现这一点,您似乎需要创建自己的DelegateDC类或类似于Windows的类似的东西,以便您可以直接设置DC句柄。
可能还有某种方法可以将wxWindow附加到窗口句柄,之后你可以从wxWindow获取一个wxWindowDC ...但是无法解决这个问题。