【问题标题】:wxPython wxDC object from win32gui.GetDCwxPython wxDC 对象来自 win32gui.GetDC
【发布时间】:2008-10-28 18:35:06
【问题描述】:

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

【问题讨论】:

    标签: wxpython device win32gui bitblit


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 我最近需要做类似的事情并得出了相同的结论,但我只花了几个小时,所以我仍然希望有办法。
      猜你喜欢
      • 1970-01-01
      • 2012-01-30
      • 1970-01-01
      • 1970-01-01
      • 2015-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多