2012-06-19 11 views
9

क्या मुख्य मेनू के रूप में संवाद का उपयोग करना सामान्य है? तो रजिस्टर क्लासएक्स के माध्यम से किसी भी उपयोगकर्ता वर्ग को पंजीकृत किए बिना? क्या मैं CreateWindow() के माध्यम से जो कुछ करता हूं वह कर सकता हूं? मुझे केवल संवाद बनाने के बजाय CreateVindow() के माध्यम से बटन, एडिटबॉक्स आदि जैसे नियंत्रण क्यों बनाना चाहिए और इसे मुख्य विंडो के रूप में उपयोग करना चाहिए?मुख्य विंडो के रूप में संवाद?

मैं एक संवाद और खिड़कियों के बीच मुख्य अंतर भी जानना चाहता हूं और दूसरे के बजाय पहले का उपयोग क्यों करना चाहता हूं।

धन्यवाद

+0

आप एक छोटा सा उलझन में ... इन 5 सवाल बहुत लंबे जवाब की आवश्यकता हो सकती है। खिड़कियों के बारे में एक सिंहावलोकन और इस की टिप्पणी http://msdn.microsoft के लिए http://msdn.microsoft.com/en-us/library/windows/desktop/ms632597(v=vs.85).aspx पढ़ने के लिए शुरू .com/en-us/library/windows/desktop/ms645452 (v = vs.85) .aspx यह समझने के लिए कि कोई संवाद क्या है। –

+0

संक्षिप्त उत्तर (मुझे यकीन है कि कोई अधिक व्यापक उत्तर प्रदान करेगा): 1) हाँ, बहुत कुछ; 2) आपको विंडोज़ पंजीकृत करने की आवश्यकता नहीं है जिसका आप उपयोग करेंगे; 3) नहीं (अगर सबकुछ के साथ आपको मतलब है कि आपको किसी अन्य कोड की आवश्यकता नहीं होगी), हाँ यदि आपका मतलब है कि आपको वास्तव में एक संवाद संसाधन बनाने की आवश्यकता नहीं है; 4) आमतौर पर आपको ऐसा करने की ज़रूरत नहीं होती है और यदि ऐसा होता है तो _usually_ ऐसा इसलिए होता है क्योंकि आप संकलन समय पर विंडो की वास्तविक सामग्री को नहीं जानते हैं; 5) एक संवाद (अधिक या कम) एक खिड़की है, बस मोडल। –

+0

मेरे 2 सेंट: यदि आप Visual Basic, डेल्फी का उपयोग करें, या .NET आपको लगता है कि के बारे में निम्न स्तर सामान में चिंता करने की जरूरत नहीं होगी और आप बहुत कुछ उत्पादक होगी। एक खिड़की को गुणों के साथ एक आयताकार दृश्य कंटेनर माना जाता है। –

उत्तर

4

क्या यह सामान्य विंडोज के रूप में एक संवाद का उपयोग करना सामान्य है?

हां, यह काफी आम है।

तो रजिस्टर क्लासएक्स के माध्यम से किसी भी उपयोगकर्ता वर्ग को पंजीकृत किए बिना?

एक संवाद आमतौर पर एक पूर्वनिर्धारित विंडो वर्ग होता है, इसलिए आमतौर पर पंजीकरण करने की कोई आवश्यकता नहीं होती है।

मैं एक संवाद और खिड़कियों के बीच मुख्य अंतर भी जानना चाहता हूं और दूसरे के बजाय पहले का उपयोग क्यों करना चाहता हूं।

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

इसके अलावा, एक संवाद एक खिड़की प्रक्रिया है, जो इस तरह के कुछ नियंत्रण आरंभ के रूप में, आप के लिए कुछ डिफ़ॉल्ट संसाधन करता है, आदि

+0

विज़ार्ड स्वचालित रूप से एक संवाद बॉक्स को कम करने के लिए कोड उत्पन्न करता है, और आकार बदलने और अधिकतम करने में मुश्किल नहीं है - http://stackoverflow.com/a/5739620/5987 –

+0

@MarkRansom देखें: यह सच है। मैं "डिफ़ॉल्ट सेटिंग्स" के बारे में और सोच रहा था, लेकिन संभवतः लगभग कुछ भी काम करने के लिए कामकाज हैं क्योंकि संवाद "बस खिड़कियां" हैं। –

2

हाँ, एक आवेदन संवाद आधारित हो सकता है। इसके लिए यदि आप विजुअलस्टूडियो और एमएफसी का उपयोग कर रहे हैं तो इसके लिए एक जादूगर भी है।

वीएस -2010 में, नई परियोजना> एमएफसी एप्लिकेशन बनाएं। "एप्लिकेशन प्रकार" में संवाद आधारित चुनें। बाकी विज़ार्ड के माध्यम से क्लिक करें, और आप दौड़ के लिए बंद हैं।

संवाद-आधारित अनुप्रयोग दस्तावेज़/दृश्य जैसे अन्य डिज़ाइनों की तुलना में अधिक सरल, वास्तुशिल्प हैं। इस प्रकार, सरल चीजें जल्दी से "बाहर निकलने" के लिए बहुत आसान होती हैं, लेकिन जब आप अधिक जटिल चीजों को करने का प्रयास करते हैं तो डिज़ाइन की सीमाएं स्पष्ट हो जाती हैं। उत्पादन-गुणवत्ता संवाद-आधारित एप्लिकेशन बनाने के लिए आप अपने संवाद-आधारित ऐप में अधिकांश दस्तावेज़/दृश्य आर्किटेक्चर को दोहराने का अंत कर सकते हैं। उस स्थिति में, क्या आपने वास्तव में कुछ भी बचा लिया?

+0

वह एमएफसी का उपयोग नहीं कर सकता है। –

+0

उचित बिंदु, संपादित। –

2

के बजाय एक संवाद प्रक्रिया का उपयोग करता एक संवाद खिड़की की तरह है बस के सभी के रूप में बटन जैसे विभिन्न नियंत्रण वास्तव में सिर्फ खिड़कियां हैं। संवाद के लिए उपयोग की जाने वाली चीजों के प्रकार का समर्थन करने के लिए आप बहुत अधिक कार्यक्षमता के साथ एक प्रकार की खिड़की के रूप में एक संवाद के बारे में सोच सकते हैं।

दो प्रकार के संवाद हैं, मोडल जो प्रदर्शित करते हैं और उम्मीद करते हैं कि आप उनका उपयोग करें और फिर उन्हें खारिज करें, और गैर-मोडल जो प्रदर्शित करते हैं लेकिन जो कैप्चर नहीं करते हैं और जब तक उन्हें खारिज नहीं किया जाता है तब तक इनपुट फ़ोकस रखें।आप उन दो प्रकारों को एप्लिकेशन में उपयोग कर सकते हैं जहां एक त्रुटि को प्रदर्शित करने के लिए एक मोडल डायलॉग का उपयोग किया जाता है या उपयोगकर्ता को कुछ सेटिंग और गैर-मोडल कृत्यों को एक प्रकार के टूल बॉक्स के रूप में प्रदर्शित करने की आवश्यकता होती है जो प्रदर्शित रहता है और जब आपको इसकी आवश्यकता होती है, तो आप क्लिक करते हैं कुछ ऐसा करने के लिए और अन्य बार आप एप्लिकेशन में किसी अन्य विंडो का उपयोग कर रहे हैं।

आम तौर पर एक संवाद एक मेनू पट्टी नहीं होगा, लेकिन इसके बजाय दृश्य या टैब या प्रस्तुति के कुछ अन्य प्रकार के माध्यम से आसानी से सुलभ उसके नियंत्रण के सभी के लिए होगा। विजुअल स्टूडियो और अन्य आईडीई में संवाद डिजाइनरों के पास विभिन्न नियंत्रणों के प्लेसमेंट को कक्षाओं और कक्षा के सदस्यों से नियंत्रण करने की अनुमति देने के लिए जादूगरों के साथ अनुमति देने की अनुमति मिलती है।

कौन सा एक संवाद और एक खिड़की के बीच एक बड़ा अंतर को लाता है। एक खिड़की एक खाली पृष्ठ है और पेज के साथ चीजों को करने के लिए और अधिक काम की आवश्यकता है। एक संवाद में ऐसे टूल होते हैं जो डिज़ाइन को आसान बनाते हैं, हालांकि टूलबॉक्स द्वारा आप बड़े हिस्से में भी बाध्य होते हैं।

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

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