winapi - How do I put a checkmark on a menu item that has submenu items. (Visual studio 2008 C++/MFC) -
मेरे पास मेनू है जिसमें सबमेनस शामिल है।
उदाहरण:
- आइटम 2
- आइटम 3
- वस्तु ए
- वस्तु बी
आइटम 3 में इसके नीचे आइटम हैं।
किसी भी समय 1, 2, या 3 के नीचे के आइटम की जांच होनी चाहिए। चूंकि मेरे पास आइटम 3 के लिए कोई आईडी नहीं है, इसलिए मुझे अपने कोड के बच्चों में से एक को चेकमार्क दिखाने के लिए मद 3 पर एक चेक सेट करने का प्रयास करते समय MF_BYPOSITION
सूचक का उपयोग करना होगा। आइटम 3 में चेकमार्क होना चाहिए, अगर ए या बी की जांच होनी चाहिए। मैं 1 और 2 और ए और बी की जांच कर रहा हूं - लेकिन आइटम 3 को समझ नहीं सकता।
मैं या तो :: CheckMenuItem ()
को सफलतापूर्वक उपयोग करने में सक्षम नहीं हूं चेक मार्क सेट करने के लिए या संशोधित करें मेनू ()
क्या कोई मुझे ऐसे उदाहरण के लिए बताता है जो सफलतापूर्वक करता है? डॉक्स से यह संकेत मिलता है कि यह किया जा सकता है, लेकिन मैं ऐसा करने में असमर्थ हूं।
संपादित करें
यह मेनू के लिए है जिसे डीएलजी बॉक्स के लिए मेनू के रूप में सेट किया गया है। मेनू बार में तीन आइटम हैं - जिनमें से एक ऊपर दिखाए गए कार्यों के लिए नीचे जाता है।
नोट भी, यह सही क्लिक के लिए पॉपअप के रूप में प्रयोग किया जाता है, लेकिन मैं किसी भी मामले में काम करने के लिए कोई सुझाव लेगा।
मैंने पॉपअप मेनू के लिए पहले यह किया है आईडी के बजाय आपको स्थान के आधार पर सबमेनू तक पहुंचने की आवश्यकता होगी उपरोक्त आपके उदाहरण का उपयोग करना, आइटम 3 स्थिति 2 पर होगा:
सीएमएनयू पॉपअपमेनू; popupMenu.LoadMenu (IDR_MYMENU); popupMenu.GetSubMenu (0) - & gt; CheckMenuItem (2, MF_BYPOSITION | MF_CHECKED); । । । popupMenu.GetSubMenu (0) - & gt; TrackPopupMenu (...);
हालांकि, मैंने मेनू बार में आइटम के साथ ऐसा नहीं किया है।
टिम द्वारा संपादित करें ओपी:
पूर्णता के लिए
इसे मेनू आइटम के साथ काम करने के लिए आपको हैमेनु प्राप्त करना है
// MENU_POSITION वह मेनू का शून्य स्थान है जिसे आप उपयोग करना चाहते हैं। (फ़ाइल, संपादित करें, देखें, सहायता ... आदि) HMENU mainMenu = :: GetMenu (m_hWnd); HMENU सबमेनू = GetSubMenu (मुख्य मेनू, MENU_POSITION); SetMenuState (सबमेनू);
Comments
Post a Comment