.NET

2011-12-02 5 views
5

में शैल स्टाइल शीर्षक बार बटन कैसे बनाएं, यह मेरे पिछले प्रश्न Draw Custom Buttons on Windows Vista/7 Aero Titlebar पर एक अनुवर्ती है।.NET

मैं काफी हाल ही में विषय पर दोबारा गौर किया और this article पाया जो अनिवार्य रूप से एयरो-सक्षम शीर्षक पट्टी पर 'ड्राइंग' बटन के लिए एक हैक (Windows Vista & 7) है। वर्तमान में एक पारदर्शी विंडो बनाने के लिए कोड क्या होता है और शीर्षक बटन पर अतिरिक्त बटन की छाप देते हुए बटन को उस पर रखता है। एकमात्र समस्या यह है कि बटन नियमित WinForms बटन की तरह दिखते हैं!

मेरा सवाल है, मैं नियंत्रण बॉक्स (छवि देखें) में बस जैसे बटनों को स्टाइल करने के लिए विंडोज शैल शैली (उर्फ थीम) कैसे पढ़ूं?

मुझे उत्तर चाहिए .NET (VB.NET या C#) में। मैं अप्रबंधित कोड के साथ ठीक हूँ।

Control Buttons

उत्तर

1

तो अगर मैं तुम्हें सही ढंग से समझ, तुम क्या विंडोज 7 वर्तमान विषय की "विंडो रंग" पहलू कॉल पढ़ना चाहते हैं।

MSDN http://msdn.microsoft.com/en-us/magazine/cc163435.aspx के अनुसार, आप चाहते हैं DwmGetColorizationColor: "। वर्तमान रंग कि DWM कांच रचना के लिए इस्तेमाल किया जा रहा है को पुन: प्राप्त यह मान वर्तमान रंग योजना पर आधारित है सेटिंग को बदलने से एक WM_WMCOLORIZATIONCOLORCHANGED अधिसूचना का कारण बनता है।।"

[DllImport("dwmapi.dll", PreserveSig = false)] 
public static extern void DwmGetColorizationColor(out int pcrColorization, [MarshalAs(UnmanagedType.Bool)]out bool pfOpaqueBlend); 

"आप DwmGetColorizationColor कार्यप्रणाली को कॉल करके रचना रंग और अस्पष्टता देखने के लिए जाँच कर सकते हैं। इस समारोह सफल होता है, तो यह एक GDI + ARGB रंग मूल्य और एक बूलियन यह बताते हैं कि रंग अपारदर्शी है सेट हो जाएगा। बस बदलने जैसे नियंत्रण कक्ष में एरो योजना, जब रचना रंग बदल जाता है तो एक संदेश प्रसारित होता है। ऐसा होने पर WM_DWMCOLORIZATIONCOLORCHANGED भेजा जाता है, लेकिन इस मामले में पैरामीटर आपको बताते हैं कि नया रंग और अस्पष्टता क्या है। "

+0

आपकी प्रतिक्रिया के लिए धन्यवाद। यह एक अच्छा पढ़ा गया हालांकि यह वास्तव में मैं नहीं चाहता था। मैं जो करना चाहता हूं वह उन बटनों को बनाने के लिए है जो नियंत्रण बॉक्स (अधिकतम, न्यूनतम और बंद) पर जाते हैं। –

+0

इसके लिए कोई एपीआई नहीं हो सकता है: यही कारण है कि मुझे लगा कि आपको विंडो रंग को पढ़ना पड़ सकता है और फिर विंडो रंग का उपयोग करके संकेत को एक संकेत के रूप में खींचें। क्या आप किसी अन्य एप्लिकेशन के बारे में सोच सकते हैं जो आप करने की कोशिश कर रहे हैं? – Josh

+0

हाँ। पहले प्रश्न में जोड़े गए स्क्रीनशॉट देखें (http://stackoverflow.com/questions/4117874/draw-custom-buttons-on-windows-vista-7-aero-titlebar)। डिस्प्ले फ़्यूज़न, एक एकाधिक डेस्कटॉप मैनेजर ऐसा करने में सक्षम है, चमक प्रभाव के साथ। –

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

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