Search code examples
wxpythondevicewin32guibitblit

wxPython wxDC object from win32gui.GetDC


I am getting a DC for a window handle of an object in another program using win32gui.GetDC which returns an int/long. I need to blit this DC into a memory DC in python. The only thing I can't figure out how to do is get a wxDC derived object from the int/long that win32gui returns. None of the wxDC objects allow me to pass an actual DC handle to them from what I can tell. This of course keeps me from doing my blit. Is there any way to do this?


Solution

  • I downloaded the wxWidgets source and dug around, and I think this will work.

    You need the handle (HWND) for the external window, not the DC.

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