سؤال

لقد كنت ألعب في محاولة لإنشاء نافذة شفافة تتراكب تطبيقًا آخر. أجد أن امتدادات Win32 هي بعض الفوضى ، وهناك Win32UI ، و Win32Gui ، و Winxpgui ، وما إلى ذلك.

على أي حال ، أحاول نقل مقبض إلى نافذة إلى هذه الوظيفة win32gui.updatelayeredwindow

الوسيطة الأولى التي يريدها هي مقبض ، كنوع من pyhandle.

جميع طرق العثور على مقبض للنافذة ، وكلها تُرجع int ، وليس نوع pyhandle. حتى تلك من نفس الوحدات. Win32Gui.Findwindow (لا شيء ، "WindowTitle) يجد ويعيد المقبض للنافذة التي أريدها ، ولكن فقط في شكل INT وليس كحزم.

ها هي مستندات الكائن.http://docs.activestate.com/activepython/2.5/pywin32/pyhandle.html

إليك مستندات طريقة FindWindow. docs.Activestate.com/activepython/2.5/pywin32/win32gui__findwindow_meth.html

وإليك المستندات للطريقة التي لن تقبل int. docs.Activestate.com/activepython/2.5/pywin32/win32gui__updatelayeredwindow_meth.html

لقد حاولت حتى استخدام WX لإنشاء وإيجاد مقابض لنظام التشغيل Windows ، كما أنه يعيد فقط int.

هناك وظيفة أخرى تريد مقبضًا ، كتبه نفس الأشخاص ، ويقبل INT كمقبض. win32api.setwindowlong

السؤال هو ، هل هناك طريقة لإنشاء كائن pyhandle من int التي أتلقاها؟ لا يمكنني معرفة ذلك.

هل كانت مفيدة؟

المحلول

كما تقول مستندات Pyhandle ، "معظم الوظائف التي تقبل كائن المقبض تقبل أيضًا عدد صحيح". هل حاولت تمرير updatelayeredwindow العدد الصحيح؟

في الأساس ، يعد pyhandle مجرد غلاف رفيع حول عدد صحيح ، مع خاصية إضافية أنه عندما يزول كائن pyhandle win32api.closehandle سيتم استدعاؤه.

نصائح أخرى

pywintypes.handle

pyhandle = handle ()

يخلق كائن مقبض جديد

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top