wxPython wxDC объект из win32gui.GetDC - PullRequest
       23

wxPython wxDC объект из win32gui.GetDC

2 голосов
/ 28 октября 2008

Я получаю DC для дескриптора окна объекта в другой программе, использующей win32gui.GetDC, который возвращает int / long. Мне нужно вставить этот DC в DC памяти в python. Единственное, что я не могу понять, как это сделать, это получить производный от wxDC объект из int / long, который возвращает win32gui. Ни один из объектов wxDC не позволяет мне передать фактический дескриптор DC из того, что я могу сказать. Это, конечно, мешает мне делать мой блядь. Есть ли способ сделать это?

Ответы [ 2 ]

1 голос
/ 30 ноября 2009

Я скачал источник wxWidgets и покопался, и я думаю, что это будет работать.

Вам нужна ручка (HWND) для внешнего окна, а не DC.

window = wx.Frame(None, -1, '')
window.AssociateHandle(hwnd)
dc = wx.WindowDC(window)
0 голосов
/ 31 октября 2008

Из того, что я могу сказать, контроллеры домена в python абстрагируются из-за изменения платформы. Таким образом, контекст устройства в python напрямую не сопоставляется с контекстом устройства в Windows, хотя многие из методов являются прямыми вызовами методов Windows. Чтобы это произошло, кажется, вам нужно создать собственный класс DelegateDC или нечто подобное, предназначенное только для Windows, чтобы вы могли напрямую установить дескриптор DC.

Может также быть какой-то способ прикрепить wxWindow к дескриптору окна, после чего вы можете получить wxWindowDC из wxWindow ... хотя это не понять.

...