2

我正在使用返回 int/long 的 win32gui.GetDC 获取另一个程序中对象的窗口句柄的 DC。我需要将这个 DC 插入 python 中的内存 DC。我唯一不知道怎么做的是从 win32gui 返回的 int/long 中获取 wxDC 派生对象。据我所知,没有一个 wxDC 对象允许我将实际的 DC 句柄传递给它们。这当然使我无法做我的小动作。有没有办法做到这一点?

4

2 回答 2

1

我下载了 wxWidgets 源并四处挖掘,我认为这会起作用。

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

window = wx.Frame(None, -1, '')
window.AssociateHandle(hwnd)
dc = wx.WindowDC(window)
于 2009-11-30T17:25:33.347 回答
0

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

可能还有一些方法可以将 wxWindow 附加到窗口句柄,之后您可以从 wxWindow 获取 wxWindowDC ......虽然无法解决这个问题。

于 2008-10-31T15:22:29.363 回答