2009-06-07 12 views
18

यह मेरा पहला एमएफसी एप्लीकेशन वीसी 6 से दूर है, और मुझे थोड़ा बेवकूफ लगता है:वीएस 2008, एमएफसी: ऑनइनिटियलॉग जोड़ें - कैसे?

मैं ऑनइनिटियलॉग हैंडलर कैसे जोड़ूं? (मुझे पता है कि इसे मैन्युअल रूप से कैसे जोड़ना है, लेकिन यह लंबे समय तक दर्द है)।

संवाद पर डबल-क्लिक करना - कुछ भी नहीं। डायलॉग पर राइट क्लिक करें - "इवेंट हैंडलर जोड़ें" अक्षम है। गुण - संदेश "सामान्य" संदेशों है, लेकिन WM_INITDIALOG नहीं गुण - घटनाक्रम केवल वर्ग को ध्यान में रखते राइट क्लिक निहित नियंत्रण से सूचनाएं रखती है - "जोड़ें .." केवल कार्य करता है और चर

खरोंच सिर

है

[संपादित करें] डी 'ओह - यह MFC में एक आभासी समारोह, लेकिन अभी भी ...

उत्तर

32

बेवकूफ मत मानो है, यह मुझे हमेशा के लिए ले लिया जब मैं पहली बार VS2008 को VC6 से चले गए इस यह पता लगाने की!

वैसे भी, और यह भी अपने खुद के संदर्भ के लिए, यहाँ एक संवाद बॉक्स जोड़ने और OnInitDialog विधि अधिभावी के लिए पूर्ण कदम हैं:

  1. करें संसाधन देखें और आर सी फ़ाइल का विस्तार करें।
  2. पेड़ दृश्य में डायलॉग प्रविष्टि राइट-क्लिक करें और डायलॉग डालें।
  3. गुण विंडो का चयन करें। (नोट: आप इस विंडो दिखाई नहीं देता है,>अन्य विंडोज>गुण विंडो मेनू आइटम देखें चुनें।)
  4. गुण में खिड़की, संवाद के लिए आईडी सेट, जैसे, IDD_MYDIALOG
  5. संसाधन संपादक में संवाद पर राइट क्लिक करें और चुनें कक्षा जोड़ें। नोट: यदि आपके पास IE8 स्थापित है, तो यह एक इंटरनेट एक्सप्लोरर स्क्रिप्ट त्रुटि उत्पन्न कर सकता है। इसे ठीक करने के तरीके के विवरण के लिए this blog post देखें।
  6. MFC कक्षा जादूगर संवाद बॉक्स में, वर्ग के नाम दर्ज करें, उदा, CMyDialog, CDialog आधार वर्ग के रूप में चुनते हैं, फिर प्रेस समाप्त। यह MyDialog.cpp और MyDialog.h नाम की फ़ाइलों को बनाएगा और उन्हें आपके प्रोजेक्ट में जोड़ देगा।

    1. ओपन फाइल MyDialog.h:

    CMyDialog कक्षा में OnInitDialog विधि ओवरराइड करने के लिए।

  7. गुण विंडो का चयन करें।
  8. कर्सर को उस लाइन पर रखें जो class CMyDialog : public CDialog पढ़ता है।(गुण विंडो के शीर्ष दिखाना चाहिए "CMyDialog VCCodeClass।" - यह महत्वपूर्ण है, क्योंकि गुण खिड़की अत्यधिक संदर्भ संवेदनशील है, और आप संपादक में कर्सर के स्थान के आधार पर अलग अलग विकल्प मिल)
  9. गुण विंडो में आइकन ओवरराइड पर क्लिक करें।
  10. OnInitDialog खोजने के लिए गुण विंडो को नीचे स्क्रॉल करें।
  11. इस प्रविष्टि के खिलाफ नीचे तीर पर क्लिक करें और < चुनें > OnInitDialog। यह आपके CMyDialog::OnInitDialog फ़ंक्शन को बनाना चाहिए।

मुझे उम्मीद है कि इससे मदद मिलती है!

+0

बस यह उल्लेख करना चाहता था कि यह मुझे वीसी 6 से VS2008 में माइग्रेट करने के बाद भी बहुत लंबे समय तक पहुंचा। इसमें उपयोग करने में थोड़ा सा समय लग सकता है। – adzm

+0

इसे मिला! :- डी यह हमेशा यह जानने में मदद करता है कि आप अकेले नहीं हैं। – peterchen

1

ऐसा प्रतीत होता है कि आपको कर्सर को रखने के लिए हेडर फ़ाइल और गड़बड़ खोलने की भी आवश्यकता नहीं है ... कक्षा बनाने के बाद, क्लासव्यू फलक में कक्षा का चयन करें और आप संपत्ति में ओवरराइड/संदेश/ईवेंट बदल सकते हैं ऊपर वर्णित फलक।

+1

यह स्वीकृत उत्तर में क्या जोड़ता है? – EWit

+1

क्योंकि गुण फलक को सही तरीके से प्रदर्शित करने के लिए कोड की सही पंक्ति पर कर्सर को स्थितिबद्ध करने के साथ हेडर फ़ाइल और गड़बड़ को खोलने की आवश्यकता नहीं है। – wayne

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