2010-11-04 17 views
8

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

मैं यहाँ से सबसे जानकारी मिल गया:

layout manager for MFC dialog apps

मैं वेब और MFC के लिए प्रत्येक खोज और ग्रिड घूमते हैं/कुछ भी/मुझे ग्रिड विजेट, नहीं sizers का एक समूह को भेजने से समाप्त होता है। क्या ऐसी कोई चीज कहीं भी है?

+0

दो जवाबों से चुनना मुश्किल है जो दोनों कहते हैं कि नहीं है। वे दोनों सही हैं। –

+0

जिसने इसे पहले कहा था उसे चुना: पी –

उत्तर

2

मैंने एमएफसी के लिए उचित पूर्ण-विशेषीकृत साइज़र लाइब्रेरी के बारे में नहीं सुना है। और मुझे विश्वास नहीं है कि उस लिंक किए गए प्रश्न में उल्लिखित विकल्पों की तुलना में कुछ भी बेहतर है।

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

इसके अलावा, मुझे लगता है कि माइक्रोसॉफ्ट ने खुद को विरासत के रूप में एमएफसी लिखा है , और इसके बजाय जीयूआई विकास के लिए .NET/C#/WPF का पक्ष लेने के लिए चले गए। आखिरकार, पिछले 10 सालों में उन नई प्रौद्योगिकियों ने कितनी दूर प्रगति की है, जबकि एक ही समय में एमएफसी फीचर पैक के कभी-कभी अतिरिक्त बदलाव से परे बदल गया है।

यदि यह संभव है, तो मैं एक और आधुनिक सी ++ ढांचे (जैसे क्यूटी) या .NET/C#/WPF (कम से कम अनुप्रयोगों के जीयूआई भाग के लिए) पर जाने पर विचार करने का सुझाव दूंगा।

+0

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

3

मैं कुछ साल पहले डब्ल्यूटीएल का उपयोग करके इस "समस्या" में भाग गया था। मैं जटिल WM_SIZE हैंडलरों से तंग आ गया, इसलिए मैंने बुलेट को थोड़ा सा किया और कुछ लेआउट कंटेनर लागू किए, और Win32 नियंत्रण और मेरे कुछ लेआउट कंटेनरों को अनुकूलित किया।

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

दुर्भाग्यवश मैं आपके साथ कोड साझा नहीं कर सकता हूं। :/मैंने शीर्ष पर एक साधारण एक्सएमएल मार्कअप भाषा भी जोड़ा जो बहुत अच्छा था।

+0

कोई मौका आप इस बीच कोड साझा कर सकते हैं या कम से कम अपना दृष्टिकोण साझा कर सकते हैं? अपने आप पर कुछ काम करने से पहले सहायक हो सकता है। –

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