2010-03-31 8 views
6

मैं एक here के समान एक एसडब्ल्यूटी ट्री पर काम कर रहा हूं, हालांकि, मैं विस्तारित वृक्ष वस्तु के बजाय कुछ मामलों में + संकेत दिखाने में सक्षम होना चाहता हूं। क्या यह संभव है ?एसडब्ल्यूटी ट्री प्लस/माइनस आइकनों को कैसे बदलें

यदि नहीं, तो क्या विंडोज एपीआई में वृक्ष वस्तु के विस्तारित/ध्वस्त राज्य के लिए कस्टम आइकन हैं?

+0

समाधान विंडोज में टीवीE_EXPANDPARTIAL संदेश का उपयोग करना है। – Ali

उत्तर

2

एसडब्ल्यूटी ट्री घटक उपलब्ध होने पर मूल वृक्ष विजेट का उपयोग करता है, उदाहरण के लिए विंडोज़ के मामले में - यह लिनक्स पर मूल विजेट का उपयोग करता है (यूआई इंजन पर निर्भर करता है), यह अपने आप पर कस्टम पेड़ बना सकता है।

ओएस पर जहां यह मूल वृक्ष विजेट का उपयोग करता है, + और - आइकन को कस्टमाइज़ करना संभव नहीं है।

जैसा अली ने सुझाव दिया (http://msdn.microsoft.com/en-us/library/bb773568%28VS.85%29.aspx देखें), आप TVE_EXPANDPARTIAL का उपयोग करना चाह सकते हैं, लेकिन ध्यान रखें कि कोड ओएस निर्भर होगा (यहां तक ​​कि विंडोज़ के संस्करणों के भीतर भी)।

हालांकि, पर भरोसा करने के बजाए अन्यथा इंगित करने के लिए TreeContentProvider में getImage() विधि का उपयोग करके आप कस्टम छवि का उपयोग कर सकते हैं। इससे यह भी सुनिश्चित होगा कि आपका कोड ओएस स्वतंत्र है।

+0

धन्यवाद! TreeContentProvider हालांकि SWT का हिस्सा नहीं है ... सुनिश्चित नहीं है कि आप इसे कैसे करेंगे लेकिन आप ओएस पर निर्भर होने वाले कोड के बारे में एक अच्छा बिंदु लाते हैं। मैंने 64 बिट संस्करण और SWTTree सबक्लास के 32 बिट संस्करण को कार्यान्वित करना समाप्त कर दिया। – Ali

+0

आह! मैं भूल गया ... यह जेएफएएस का हिस्सा है। संबंधित वर्ग TreeViewer है। –

+1

setImage वास्तव में +/- आइकन नहीं बदलता है। यह +/- आइकन के दाईं ओर एक छवि जोड़ता है। – Ali

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