2011-11-11 8 views
10

में प्रदर्शित करने के लिए सर्वश्रेष्ठ आइकन आकार मैं डेल्फी प्रोग्राम पर काम कर रहा हूं जो "ट्रे" पर एक आइकन प्रदर्शित करेगा। मैं इसे "कठिन तरीका" कर रहा हूं (Shell_NotifyIcon api, आदि का उपयोग करके और यहां कोई घटक नहीं, यहां बिंदु के बाहर कारणों के लिए)। यह ठीक काम कर रहा है लेकिन कभी-कभी ऐसा लगता है कि आइकन कुछ सिस्टमों में थोड़ा "धुंधला" है। अब, मैंने 16x16 बीएमपी, 32x32, आदि का उपयोग करके प्रयोग किया है। ऐसा लगता है जैसे सिस्टम इसे आवश्यक आकार तक स्केल करता है, लेकिन परिणाम ओएस संस्करण (या शायद कुछ और भी) के आधार पर भिन्न होते हैं ....ट्रे

क्या आप में से कोई भी बीएमपी के सर्वोत्तम आकार और रंग गहराई के बारे में कोई अनुभव है जिसे निकालने के लिए और ListImage से Shell_NotifyIcon का उपयोग करके ट्रे पर प्रदर्शित किया गया है?

उत्तर

12

आप सबसे अच्छा प्रभाव के लिए आंशिक पारदर्शिता के साथ 32bpp माउस का उपयोग करना चाहिए।

आइकन छोटे सिस्टम आकार का उपयोग करता है। GetSystemMetricsSM_CXSMICON पास करके इसे कॉल करके प्राप्त करें। यदि आप फ़ॉन्ट स्केलिंग का उपयोग करते हैं, तो उदाहरण के लिए, अधिक सामान्य 16px की बजाय 20px हो सकता है। मैंने इस तथ्य के लिए एमएस दस्तावेज कभी नहीं पाया है लेकिन आप इसे परीक्षण और त्रुटि से आसानी से सत्यापित कर सकते हैं। वास्तव में मामलों की एक खुश स्थिति नहीं है, लेकिन यह वही है।

अद्यतन: टंड्रेज बताते हैं कि LoadIconMetric के लिए दस्तावेज़ छोटे आइकन आकार वाले अधिसूचना क्षेत्र आइकन की स्पष्ट स्वीकृति देते हैं। मुझे समझ में नहीं आता कि अधिसूचना आइकन के लिए इस जानकारी को क्यों शामिल नहीं किया गया है।

+0

हम्म ... GetSystemMetrics (SM_CXICON) मुझे मेरे सिस्टम पर 32 दे रहा है ... चालू दूसरी ओर GetSystemMetrics (SM_CXSMICON) मुझे 16 देता है ...सहायता फ़ाइल इंगित करती है कि SM_CXSMICON एक छोटे आइकन की अनुशंसित चौड़ाई है (सुनिश्चित करें कि यह उस मामले के लिए "ट्रे" या "अधिसूचना बार" के बारे में कुछ भी नहीं कहता है। – Lobuno

+0

मैंने जो लिंक पोस्ट किया है, वह बताता है कि 'LIM_SMALL' 'SM_CXSMICON' से मेल खाता है। कोड उदाहरण 'LIM_SMALL' का उपयोग करता है। –

+0

आप सही हैं! – Lobuno

7

आप दोनों 32x32 और 16x16 माउस शायद शामिल हैं और रनटाइम पर उचित एक लोड होनी चाहिए:

अधिसूचना क्षेत्र प्रतीक उच्च डीपीआई बारे में पता होना चाहिए। एक आवेदन को संसाधन फ़ाइल में 16x16 पिक्सेल आइकन और 32x32 आइकन दोनों प्रदान करना चाहिए, और फिर LoadIconMetric का उपयोग यह सुनिश्चित करने के लिए करें कि सही आइकन उचित रूप से लोड और स्केल किया गया हो।

(स्रोत: MSDN)

+0

दुर्भाग्य से दस्तावेज़ यहां काम नहीं करता है। यदि आप एक आइकन में नहीं डालते हैं जो छोटा आइकन आकार है, तो आपके पास एलियासिंग और ड्रेडेड जागियां होंगी। यह मुझे कड़वी अनुभव से पता है। –

+1

आपको शायद एक नोट शामिल करना चाहिए कि यह केवल Vista और उच्चतर, या Windows Server 2008 और उच्चतर पर काम करता है ('LoadIconMetric' पहले के विंडोज प्लेटफ़ॉर्म पर उपलब्ध नहीं है)। वहाँ अभी भी बहुत सारे WinXP और सर्वर 2003 सिस्टम हैं। :) –

+5

यदि कोई दिलचस्पी लेता है तो मेरे पास उत्कृष्ट कोड है जो किसी संसाधन के नाम के किसी भी आकार के आइकन बनाएगा और यह XP और ऊपर काम करता है लेकिन वे मौजूद नए कार्यों का लाभ उठाते हैं। मैं एक क्यू पोस्ट कर सकता हूं और रुचि के मामले में इसे अपने कोड के साथ उत्तर दे सकता हूं। –

0

ऐप आइकन के लिए एक एकल *.ico फ़ाइल की अनुशंसा की जाती है। *.ico फ़ाइल 16, 32, 256 इत्यादि जैसे विभिन्न आकारों के स्टोर स्टोर कर सकती है। आप अलग-अलग छवि फ़ाइलों को ico प्रारूप ऑनलाइन here में परिवर्तित कर सकते हैं।

ट्रे आइकन 16x16 या 32x32 आईको फिट होगा। माउस के लिए

सरकारी MSDN गाइड: icons in Windows

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

  • कोई संबंधित समस्या नहीं^_^