2010-05-09 10 views
5

में क्लिक-थ्रू मैंने अर्ध-पारदर्शी रूप बनाया है। मैं लोगों को फॉर्म क्षेत्र पर क्लिक करने में सक्षम होना चाहता हूं, और फॉर्म के लिए क्लिक को संभाल नहीं सकता। मैं इसके बजाय क्लिक ईवेंट प्राप्त करने के लिए जो कुछ भी नीचे है उसे पसंद करूंगा।सी # फॉर्म

+0

संभावित डुप्लिकेट [दृश्य सी # विंडो फॉर्म के लिए पारदर्शिता के माध्यम से क्लिक करें?] (Http://stackoverflow.com/questions/112224/click-through-transparency-for-visual-c-window-forms) – Joey

+0

नीचे क्या होगा फार्म? – Ikaso

उत्तर

3

आप SetWindowLong के साथ ऐसा कर सकते हैं:

int initialStyle = GetWindowLong(this.Handle, -20); 
SetWindowLong(this.Handle, -20, initialStyle | 0x80000 | 0x20); 

यहाँ में कुछ जादुई संख्या हैं:

  • -20 - GWL_EXSTYLE

    पुन: प्राप्त करता विस्तारित खिड़की शैलियों।

  • 0x80000 - WS_EX_LAYERED

    एक layered window बनाता है।

  • 0x20 - WS_EX_TRANSPARENT

    निर्दिष्ट करता है कि इस शैली के साथ बनाया एक खिड़की तक खिड़की के नीचे भाई बहन (है कि एक ही धागे द्वारा बनाया गया था) चित्रित किया गया है चित्रित नहीं किया जाना चाहिए। खिड़की पारदर्शी दिखाई देती है क्योंकि अंतर्निहित भाई खिड़कियों के बिट्स को पहले ही चित्रित किया जा चुका है।

ऐसे this one के रूप में सभी ऐसा करने के तरीके पर वेब पर अनेक लेख, कर रहे हैं।

संबंधित मुद्दे