एमएफसी एचडब्ल्यूएनडी से सीडब्ल्यूएनडी, एचडीसी से सीडीसी आदि तक कई हैंडल मैप्स बनाए रखता है, जो थ्रेड राज्य में संग्रहीत हैं। प्रत्येक हैंडल मानचित्र में एक स्थायी नक्शा और अस्थायी नक्शा होता है - जब आप CWnd :: Create या CDC :: Attach जैसे किसी विधि को कॉल करते हैं तो स्थायी प्रविष्टियां जोड़ दी जाती हैं, जबकि अस्थायी प्रविष्टियां तब बनाई जाती हैं जब आप एक हैंडल पर FromHandle को कॉल करते हैं जिसमें कोई नहीं है स्थायी प्रवेश
अस्थायी प्रविष्टियां निष्क्रिय प्रक्रिया (CWinApp :: OnIdle में) के दौरान साफ़ की जाती हैं, ताकि वे वर्तमान संदेश को संसाधित करते समय सुरक्षित रूप से उपयोग किए जा सकें। जैसे ही आप संदेश लूप पर वापस आते हैं, या एक और मोडल पाश दर्ज करें (उदा। DoModal को कॉल करके) तो उन्हें हटाया जा सकता है।
स्रोत
2009-10-01 15:26:48
क्या इसका मतलब यह है कि आप (संभवतः अस्थायी) सीडब्ल्यूएनडी से एचडब्ल्यूएनडी प्राप्त कर सकते हैं और इसके बजाय स्टोर कर सकते हैं? फिर, बाद में जब आवश्यक हो, तो आप CWnd प्राप्त करने के लिए संग्रहीत HWND का उपयोग करके FromHandle को कॉल कर सकते हैं। – Steg
हां, यह ठीक होगा, एचडब्ल्यूएनडी खिड़की के जीवनकाल के लिए मान्य होगा। –
उत्कृष्ट, चीयर्स फिल – Steg