अन्य उत्तर में जानकारी के अलावा:
प्रत्येक के लिए खिड़कियों में और की तरह हर नियंत्रण एक नियंत्रण आईडी दी जाएगी (हर संवाद, खिड़की, पाठ बॉक्स और चेकबॉक्स आदि के लिए)
यह वास्तव में बिल्कुल सही नहीं है: शीर्ष-स्तरीय विंडो - जैसे ऐप विंडो और संवाद, वास्तव में नियंत्रण आईडी नहीं है। केवल बाल खिड़कियों में नियंत्रण आईडी हो सकती है।
(उच्च-स्तरीय विंडो का उपयोग कि CreateWindow के पैरामीटर खिड़की के लिए HMENU इंगित करने के लिए बजाय - तो केवल शीर्ष-स्तरीय खिड़कियों मेन्यूपट्टी हो सकता है।)
यह वास्तव में एप्लिकेशन डेवलपर के लिए ऊपर कैसे आवंटित करने के लिए तय करने के लिए है और आईडी का उपयोग करें। आमतौर पर वे GetDlgItem() के साथ उपयोग किए जाते हैं, जो एक एचडब्ल्यूएनडी को एक एचडीडब्ल्यू के साथ एक दिए गए आईडी के साथ देखता है, इसलिए उस स्थिति में, आईडी को केवल उस अभिभावक के भीतर अद्वितीय होना चाहिए। यदि किसी डेवलपर को रनटाइम पर नियंत्रण देखने की आवश्यकता नहीं है, तो यह इसे किसी भी आईडी दे सकता है, पारंपरिक रूप से -1 का उपयोग किया जाता है।
कुछ ढांचे नियंत्रण आईडी का उपयोग नहीं करते हैं और केवल बनाए गए एचडब्ल्यूएनडी का ट्रैक रखते हैं।
क्या यह भी सच है? मुझे लगता है कि नियंत्रण आईडी का उपयोग करना चुन सकते हैं या नहीं। एक खिड़की हैंडल नियंत्रण की पहचान करने के लिए पर्याप्त है। –
यह नहीं है। यह आमतौर पर केवल एक संवाद टेम्पलेट से बनाए गए संवादों के लिए सेट होता है। इसे बाद में SetWindowLongPtr, GWLP_ID के साथ बदला जा सकता है। –
कई प्रकार के नियंत्रण आईडी हैं। स्वचालन आईडी वह है जिसे आप सेट करना चाहते हैं। क्या आप अपने ऐप के लिए WinForms, WPF, या Win32 का उपयोग कर रहे हैं? "फ्रेम नियंत्रण मैन्युअल रूप से सेट करने का कोई तरीका है" का उत्तर प्रत्येक ढांचे के लिए अलग होगा।और स्वचालन आईडी को विश्व स्तर पर अद्वितीय नहीं होना चाहिए - उन्हें केवल एक उपयोगी क्षेत्र में अद्वितीय होना चाहिए, क्योंकि आपको किसी विशेष नियंत्रण की पहचान करने के लिए पेड़ के नीचे एक अद्वितीय पथ की आवश्यकता है। इसे .NET GUI ऐप्स के लिए देखें: http://msdn.microsoft.com/en-us/library/aa349646.aspx –