Tudnivalók az ikonokról
A rendszer a felhasználói felületen ikonokkal jeleníti meg az objektumokat, például fájlokat, mappákat, parancsikonokat, alkalmazásokat és dokumentumokat. Az ikonfüggvények lehetővé teszik az alkalmazások számára az ikonok létrehozását, betöltését, megjelenítését, elrendezését, animálását és megsemmisítését. A fájltípusok ikonjainak megadásáról további információt ExtractIconcímű témakörben talál.
Ez az áttekintés a következő témakörökről nyújt tájékoztatást:
- Ikon – gyakori elérésű
- ikontípusok
- ikonméretek
- ikonlétrehozás
- Ikonok megjelenítése
- Ikon Megsemmisítés
- Ikonok duplikálása
Ikon - kiemelt pont
Az ikon egyik képpontja forró pontkéntvan kijelölve, ez az a pont, amelyet a rendszer nyomon követ, és felismeri az ikon pozícióját. Az ikonok gyakori elérésű helye általában az ikon közepén található képpont. Ha a CreateIconIndirect függvénnyel hoz létre ikont, tetszőleges képpontot megadhat a gyakori elérésű helyként.
Ikontípusok
Az operációs rendszer szabványos ikonok készletét biztosítja, amelyek bármely alkalmazás számára bármikor használhatók. A szoftverfejlesztői készlet (SDK) fejlécfájljai a rendszerikonok azonosítóit tartalmazzák – az azonosítók a IDI_ előtaggal kezdődnek.
Érték | Jelentés |
---|---|
IDI_APPLICATION MAKEINTRESOURCE(32512) |
![]() |
IDI_ERROR MAKEINTRESOURCE(32513) |
![]() |
IDI_QUESTION MAKEINTRESOURCE(32514) |
![]() |
IDI_WARNING MAKEINTRESOURCE(32515) |
![]() |
IDI_INFORMATION MAKEINTRESOURCE(32516) |
![]() |
IDI_WINLOGO MAKEINTRESOURCE(32517) |
![]() |
IDI_SHIELD MAKEINTRESOURCE(32518) |
![]() |
A szabványos ikonok ajánlott használatáról az Irányelvek című témakörben olvashat.
Továbbá, a Windows Vista-tól kezdve további standard rendszerhéj-ikonok érhetőek el a SHGetStockIconInfo metóduson keresztül.
egyéni ikonok egy adott alkalmazásban való használatra vannak tervezve, és bármilyen kialakítást tartalmazhatnak. A felhasználó betöltheti az egyéni ikonokat a fájlokból, vagy futtatáskor létrehozhatja őket. Az alábbiakban számos egyéni ikon található.
több egyéni ikon
Ikonméretek
A rendszer négy ikonméretet használ:
- Kicsi rendszer
- Nagy rendszer
- Rendszerhéj kicsi
- Nagyméretű rendszerhéj
- Jumbo (Windows Vista indítása)
A rendszer kis ikonja megjelenik az ablak feliratában.
Tekintse meg a(z) Ikonméretezés hivatkozást az alkalmazás által preferált ikonméretekkel kapcsolatos javaslatokért.
A rendszer méretének módosítása kis ikonnal
- A Vezérlőpulton kattintson a Megjelenítéselemre, majd a Megjelenés fülre.
- Válassza az Elem listából a Feliratgombokat, majd állítsa be a Méret mezőt.
A rendszer méretének lekérése kis ikonnal
- Hívja meg a GetSystemMetrics függvényt a SM_CXSMICON és a SM_CYSMICONparaméterekkel.
A rendszer nagyméretű ikonja elsősorban az alkalmazások használják, de az Alt+Tab párbeszédpanelen is megjelenik. A CreateIconFromResource, DrawIcon, ExtractAssociatedIcon, ExtractIcon, ExtractIconEx, és LoadIcon függvények mind rendszer nagy ikonokat használnak. A rendszer nagy ikonjának méretét a videoillesztő határozza meg, ezért nem módosítható.
A rendszer nagy ikonjának méretének lekérése
- GetSystemMetrics hívása SM_CXICON és SM_CYICONhasználatával.
A CreateIcon, CreateIconFromResourceEx, CreateIconIndirectés SHGetFileInfo függvények a rendszer nagy méretétől eltérő méretű ikonok kezelésére használhatók.
A rendszerhéj kisméretű ikonja a Windows Intézőben és a gyakori párbeszédpaneleken használható. Ez jelenleg a rendszer kis méretének alapértelmezett értéke.
A rendszerhéj kis ikonjának méretének lekérése
- A SHGetFileInfo függvénnyel
SHGFI_SHELLICONSIZE | SHGFI_SMALLICON
kérjen le egy fogantyút a rendszer képlistájához. - Ezután hívja meg a ImageList_GetIconSize függvényt az ikon méretének lekéréséhez.
A shell nagy ikonja az asztalon van használatban.
A nagy ikon méretének módosítása
- A Vezérlőpulton kattintson a Megjelenítés, majd a Megjelenés fülre,
- Válassza ki Ikon tételt az Elem listából, majd állítsa be a Méret mezőt (ezt a méretet a beállításjegyzékben tárolják, a HKEY_CURRENT_USER\Control Panel, Desktop\WindowMetrics\Shell Icon Sizealatt).
- Kattintson a Plusz! fülre, majd jelölje be a Nagy ikonok használata jelölőnégyzetet.
A héj nagy ikon méretének lekérése
- A SHGetFileInfo függvénnyel SHGFI_SHELLICONSIZE lekérhet egy leírót a rendszerképek listájára.
- Ezután hívja meg a ImageList_GetIconSize függvényt az ikon méretének lekéréséhez.
Az ablakosztály regisztrálásához használandó WNDCLASSEX szerkezet kitöltésekor állítsa a hIcon tagot a rendszer nagyméretű ikonjához (általában 32x32), a hIconSm tagot pedig a rendszer kis ikonjához (általában 16x16). További információ az osztályikonokról: Osztályikonok.
Ikon létrehozása
A standard ikonok előre definiálva vannak, ezért nem szükséges létrehozni őket. Szabványos ikon használatához az alkalmazás a LoadImage függvény használatával szerezheti be a fogantyúját. A ikonkezelő a HICON típus egyedi értéke, amely egy szabványos vagy egyéni ikont azonosít.
Ha egyéni ikont szeretne létrehozni egy alkalmazáshoz, általában grafikus alkalmazást használna, és az ICON erőforrás- szerepelne az alkalmazás erőforrásdefiníciós fájljában. Futásidőben meghívhatja a(z) LoadIcon vagy a(z) LoadImage, hogy megszerezze a fogantyút az ikonhoz. Az ikonerőforrás több különböző megjelenítési eszköz képcsoportját is tartalmazhatja. LoadIcon és LoadImage automatikusan kiválasztja az aktuális megjelenítési eszközhöz legmegfelelőbb ikont a csoportból.
Az alkalmazások futásidőben is létrehozhatnak egyéni ikonokat a CreateIconIndirect függvénnyel, amely egy ICONINFO struktúra tartalma alapján hoz létre ikont. A GetIconInfo függvény kitölti a szerkezetet a gyakori elérésű koordinátákkal és az ikon bitmaszk bitképével és színbitképével kapcsolatos információkkal.
Az alkalmazásoknak erőforrásokként egyéni ikonokat kell implementálniuk, és LoadIcon vagy LoadImagekell használniuk, nem pedig futásidőben kell létrehozniuk az ikont. Az ikonerőforrások használata elkerüli az eszközfüggőséget, leegyszerűsíti a honosítást, és lehetővé teszi az alkalmazások számára az ikonalakzatok megosztását.
A CreateIconFromResourceEx függvény lehetővé teszi, hogy az alkalmazás tallózzon a rendszer erőforrásai között, és az erőforrásadatok alapján ikonokat és kurzorokat hozzon létre. CreateIconFromResourceEx létrehoz egy ikont más végrehajtható fájlokból vagy DLL-ekből származó bináris erőforrásadatok alapján. Egy alkalmazásnak meg kell előznie ezt a függvényt a LookupIconIdFromDirectoryEx függvény és több erőforrásfüggvény meghívásával. LookupIconIdFromDirectoryEx az aktuális megjelenítési eszközhöz legmegfelelőbb ikonadatok azonosítóját adja vissza.
Ikon megjelenítése
A GetIconInfo függvénnyel lekérheti egy ikon képét, és a DrawIconEx függvénnyel rajzolhatja le. Az ikon alapértelmezett képének rajzolásához adja meg a DI_COMPAT jelölőt a DrawIconEx hívásában. Ha nem adja meg a DI_COMPAT jelzőt, DrawIconEx a felhasználó által megadott kép használatával rajzolja meg az ikont.
Amikor a rendszer megjelenít egy ikont, ki kell nyernie a megfelelő ikonképet a .exe vagy .dll fájlból. A rendszer az alábbi lépésekkel választja ki az ikonképet:
- Válassza ki a RT_GROUP_ICON erőforrást. Ha több ilyen erőforrás is létezik, a rendszer az erőforrás-kódjegyzékben szereplő első erőforrást használja.
- Válassza ki a megfelelő RT_ICON képet a RT_GROUP_ICON erőforrásból. Ha több rendszerkép is létezik, a rendszer a következő feltételek alapján választ ki egy képet:
- A rendszer a kért mérethez legközelebb eső képet választja ki.
- Ha két vagy több ilyen méretű kép van jelen, a rendszer a megjelenítés színmélységével egyező képet választja ki.
- Ha egyetlen kép sem felel meg pontosan a megjelenítés színmélységének, a rendszer a legnagyobb színmélységgel rendelkező képet választja ki, amely nem haladja meg a megjelenítés színmélységét. Ha minden meghaladja a színmélységet, a legalacsonyabb színmélységgel rendelkezőt választja ki.
Jegyzet
A rendszer a 8 vagy több bpp színmélységeket egyenlőnek kezeli. Ezért nincs előnye, hogy egy 16x16 256 színű és egy 16x16 16 színű képet is belevesz ugyanabban az erőforrásban – a rendszer egyszerűen kiválasztja az elsőt, amelyikkel találkozik. Ha a kijelző 8 bites módban van, a rendszer egy 16 szín ikont választ egy 256 színből, és az összes ikont a rendszer alapértelmezett palettáján jeleníti meg.
Animált ikon megjelenítéséhez használjon statikus vezérlőt az alábbi kódtöredékben látható módon.
hIcon = LoadImage(NULL, "ico.ani", IMAGE_ICON, 0, 0, LR_LOADFROMFILE);
SendMessage( hStatic, STM_SETIMAGE, IMAGE_ICON, (LPARAM)(UINT)hIcon);
Ikonok megsemmisítése
Ha egy alkalmazásnak már nincs szüksége egy ikonra, amelyet a CreateIconIndirect függvénnyel hozott létre, az ikont el kell pusztítania. A DestroyIcon függvény megsemmisíti az ikonfogópontot, és felszabadítja az ikon által használt memóriát. Az alkalmazásoknak ezt a függvényt csak azoknál az ikonoknál kell használni, amelyeket a CreateIconIndirectfüggvénnyel hoztak létre; más ikonokat nem szükséges megsemmisíteni.
Ikon duplikálása
A CopyIcon függvény egy ikonfogópontot másol. Lehetővé teszi, hogy egy alkalmazás vagy DLL saját leírójával egy másik modul tulajdonában lévő ikonhoz férjen hozzá. Ezután, ha a másik modul felszabadul, az ikont másoló alkalmazás továbbra is használhatja az ikont.
A CopyImage függvény egy új ikont hoz létre a megadott forrásikon alapján. Az új ikon nagyobb vagy kisebb lehet, mint a forrásikon.
Az ikonerőforrások végrehajtható (.exe) fájlokban való hozzáadásáról, eltávolításáról vagy cseréjéről az Erőforrásokcímű témakörben olvashat.
A DuplicateIcon függvény tényleges másolatot készít az ikonról.