2011-02-05 17 views
5
सी # के साथ

बिना CreateWindowEx का उपयोग कर एक खिड़की बनाना, मैं आसानी से प्रभाव मैं चाहता था प्राप्त करने में सक्षम था सी। मुझे नहीं पता कि एक विंडो बनाने के लिए जिसमें कोई आइकन (बिल्कुल नहीं) है, लेकिन अभी भी एक कैप्शन, एक छोटा बटन, और एक करीबी बटन है।एक आइकन

मैंने अपनी कक्षा को सही तरीके से पंजीकृत किया है, लेकिन मैं यह नहीं समझ सकता कि विंडो शैलियों/विस्तारित विंडो शैलियों के लिए क्या रखा जाए।

static const TCHAR lpctszTitle[] = TEXT("Stuff"), lpctszClass[] = 
    TEXT("StuffClass"); 

HWND hWnd = CreateWindowEx(WS_EX_LAYERED | WS_EX_TOPMOST, lpctszClass, 
    lpctszTitle, WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION | WS_MINIMIZEBOX, 
    CW_USEDEFAULT, 0, 250, 55, NULL, NULL, hThisInstance, NULL); 

कोड ऊपर का उत्पादन:

standard window WITH an icon in the title bar

अभी भी शीर्षक पट्टी में एक आइकन है और मैं चाहता था नहीं है।

उत्तर

7

एक मानक विंडो को एक आइकन की आवश्यकता होती है क्योंकि इसे स्क्रीन के नीचे टास्कबार में कुछ प्रकार के प्रतिनिधित्व की आवश्यकता होती है। जब आप मुख्य विंडो में से एक आइकन नहीं रखते हैं तो विंडो स्विचर में Alt + टैब दबाए जाने पर क्या प्रदर्शित किया जाना चाहिए?

आपको WS_EX_DLGMODALFRAME extended style निर्दिष्ट करने की आवश्यकता है। यह वही प्रभाव है जो WinForms सेट करता है जब आप शीर्षक पट्टी में आइकन बंद करते हैं।

आप भी यकीन है कि जब आप विंडो वर्ग रजिस्टर है कि आप एक आइकन निर्दिष्ट नहीं करते हैं बनाने की जरूरत है। आप 0.

को WNDCLASSEX संरचना के hIcon और hIconSm फ़ील्ड सेट करनी

निम्नलिखित के लिए अपने कोड बदले की जरूरत है: शैलियों को देखने के लिए, जासूस ++ या अन्य इसी तरह के उपकरण

static const TCHAR lpctszTitle[] = TEXT("Stuff"), lpctszClass[] = 
    TEXT("StuffClass"); 

HWND hWnd = CreateWindowEx(WS_EX_LAYERED | WS_EX_TOPMOST, lpctszClass, 
    lpctszTitle, WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION | WS_MINIMIZEBOX, 
    CW_USEDEFAULT, 0, 250, 55, NULL, NULL, hThisInstance, NULL); 
+0

मैंने कोशिश की, लेकिन तब खिड़की का कोई करीबी बटन नहीं था। http://localhostr.com/files/k3WzHR6/Stuff.png –

+0

@myeviltacos: मुझे लगता है कि मुझे इस सवाल का मुद्दा याद आया। सिस्टम मेनू को हटाने से वास्तव में बंद बॉक्स को हटा दिया जाता है; यह डिजाइन द्वारा है। आप वास्तव में WinForms में समान शैली का अनुकरण करने के लिए एक संवाद विंडो की तलाश में हैं। एक मानक मुख्य खिड़की जो आप उम्मीद कर रहे हैं वह नहीं करेगी। मैंने अपना जवाब अपडेट कर लिया है। –

+0

धन्यवाद, यही वही था जो मुझे चाहिए था! –

1

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

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