Tentang Ikon
Sistem ini menggunakan ikon di seluruh antarmuka pengguna untuk mewakili objek seperti file, folder, pintasan, aplikasi, dan dokumen. Fungsi ikon memungkinkan aplikasi untuk membuat, memuat, menampilkan, mengatur, menganimasikan, dan menghancurkan ikon. Untuk informasi tentang menentukan ikon untuk jenis file, lihat ExtractIcon.
Gambaran umum ini menyediakan informasi tentang topik berikut:
Ikon Hot Spot
Salah satu piksel dalam ikon ditetapkan sebagai hot spot, yang merupakan titik sistem melacak dan mengenali sebagai posisi ikon. Hot spot ikon biasanya merupakan piksel yang terletak di tengah ikon. Jika Anda menggunakan fungsi CreateIconIndirect untuk membuat ikon, Anda dapat menentukan piksel apa pun untuk menjadi hot spot.
Tipe Ikon
Sistem operasi menyediakan serangkaian ikon standar yang tersedia untuk digunakan aplikasi apa pun kapan saja. File header kit pengembangan perangkat lunak (SDK) berisi pengidentifikasi untuk ikon sistem - pengidentifikasi dimulai dengan awalan IDI_ .
Nilai | Makna |
---|---|
IDI_APPLICATION MAKEINTRESOURCE(32512) |
Ikon aplikasi default |
IDI_ERROR MAKEINTRESOURCE(32513) |
Ikon kesalahan |
IDI_QUESTION MAKEINTRESOURCE(32514) |
Ikon tanda tanya |
IDI_WARNING MAKEINTRESOURCE(32515) |
Ikon peringatan |
IDI_INFORMATION MAKEINTRESOURCE(32516) |
Ikon informasi |
IDI_WINLOGO MAKEINTRESOURCE(32517) |
Ikon logo Windows |
IDI_SHIELD MAKEINTRESOURCE(32518) |
Ikon perisai keamanan |
Lihat Panduan untuk informasi tentang penggunaan ikon standar yang direkomendasikan.
Selain itu, dimulai dengan Windows Vista, serangkaian ikon shell sistem standar tambahan tersedia melalui metode SHGetStockIconInfo .
Ikon kustom dirancang untuk digunakan dalam aplikasi tertentu dan dapat menjadi desain apa pun. Pengguna dapat memuat ikon kustom dari file atau membuatnya pada run-time. Berikut ini adalah beberapa ikon kustom.
Ukuran Ikon
Sistem ini menggunakan empat ukuran ikon:
- Sistem kecil
- Sistem besar
- Shell kecil
- Shell besar
- Jumbo (memulai Windows Vista)
Ikon kecil sistem ditampilkan di jendela caption.
Lihat Penskalaan ikon untuk rekomendasi tentang ukuran ikon pilihan untuk aplikasi Anda.
Untuk mengubah ukuran ikon kecil sistem
- Dari Panel Kontrol, klik Tampilan, lalu klik tab Tampilan.
- Pilih Tombol Keterangan dari daftar Item , lalu atur bidang Ukuran .
Untuk mengambil ukuran ikon kecil sistem
- Panggil fungsi GetSystemMetrics dengan SM_CXSMICON dan SM_CYSMICON.
Ikon besar sistem terutama digunakan oleh aplikasi, tetapi juga ditampilkan dalam dialog Alt+Tab. Fungsi CreateIconFromResource, DrawIcon, ExtractAssociatedIcon, ExtractIcon, ExtractIconEx, dan LoadIcon semuanya menggunakan ikon besar sistem. Ukuran ikon besar sistem didefinisikan oleh driver video, oleh karena itu tidak dapat diubah.
Untuk mengambil ukuran ikon besar sistem
- Panggil GetSystemMetrics dengan SM_CXICON dan SM_CYICON.
Fungsi CreateIcon, CreateIconFromResourceEx, CreateIconIndirect, dan SHGetFileInfo dapat digunakan untuk bekerja dengan ikon dalam ukuran selain sistem besar.
Ikon kecil shell digunakan di Windows Explorer dan dialog umum. Saat ini, ini default ke ukuran kecil sistem.
Untuk mengambil ukuran ikon kecil shell
- Gunakan fungsi SHGetFileInfo dengan
SHGFI_SHELLICONSIZE | SHGFI_SMALLICON
untuk mengambil handel ke daftar gambar sistem. - Kemudian panggil fungsi ImageList_GetIconSize untuk mendapatkan ukuran ikon.
Ikon besar shell digunakan pada desktop.
Untuk mengubah ukuran ikon besar
- Dari Panel Kontrol , klik Tampilan, lalu klik tab Tampilan,
- Pilih Ikon dari daftar Item , lalu atur bidang Ukuran (ukuran ini disimpan di registri, di bawah HKEY_CURRENT_USER\Control Panel, Desktop\WindowMetrics\Shell Icon Size).
- Klik tab Plus! lalu pilih kotak centang Gunakan Ikon Besar .
Untuk mengambil ukuran ikon besar shell
- Gunakan fungsi SHGetFileInfo dengan SHGFI_SHELLICONSIZE untuk mengambil handel ke daftar gambar sistem.
- Kemudian panggil fungsi ImageList_GetIconSize untuk mendapatkan ukuran ikon.
Saat mengisi struktur WNDCLASSEX yang akan digunakan dalam mendaftarkan kelas jendela Anda, atur anggota hIcon ke ikon besar sistem (biasanya 32x32) dan anggota hIconSm ke ikon kecil sistem (biasanya 16x16). Untuk informasi selengkapnya tentang ikon kelas, lihat Ikon Kelas.
Pembuatan Ikon
Ikon standar telah ditentukan sebelumnya, sehingga tidak perlu membuatnya. Untuk menggunakan ikon standar, aplikasi dapat memperoleh handelnya dengan menggunakan fungsi LoadImage . Handel ikon adalah nilai unik dari jenis HICON yang mengidentifikasi ikon standar atau kustom.
Untuk membuat ikon kustom untuk aplikasi, Anda biasanya akan menggunakan aplikasi grafis dan menyertakan Sumber Daya ICON dalam file definisi sumber daya aplikasi. Pada run-time, Anda dapat memanggil LoadIcon atau LoadImage untuk mengambil handel ke ikon. Sumber daya ikon dapat berisi sekelompok gambar untuk beberapa perangkat tampilan yang berbeda. LoadIcon dan LoadImage secara otomatis memilih ikon yang paling tepat dari grup untuk perangkat tampilan saat ini.
Aplikasi juga dapat membuat ikon kustom pada run-time dengan menggunakan fungsi CreateIconIndirect , yang membuat ikon berdasarkan konten struktur ICONINFO . Fungsi GetIconInfo mengisi struktur dengan koordinat hot-spot dan informasi tentang bitmap bitmask dan bitmap warna untuk ikon.
Aplikasi harus menerapkan ikon kustom sebagai sumber daya dan harus menggunakan LoadIcon atau LoadImage, daripada membuat ikon pada run-time. Menggunakan sumber daya ikon menghindari dependensi perangkat, menyederhanakan pelokalan, dan memungkinkan aplikasi berbagi bentuk ikon.
Fungsi CreateIconFromResourceEx memungkinkan aplikasi menelusuri sumber daya sistem dan membuat ikon dan kursor berdasarkan data sumber daya. CreateIconFromResourceEx membuat ikon berdasarkan data sumber daya biner dari file atau DLL lain yang dapat dieksekusi. Aplikasi harus mendahului fungsi ini dengan panggilan ke fungsi LookupIconIdFromDirectoryEx dan beberapa fungsi sumber daya. LookupIconIdFromDirectoryEx mengembalikan pengidentifikasi data ikon yang paling tepat untuk perangkat tampilan saat ini.
Tampilan Ikon
Anda dapat mengambil gambar untuk ikon dengan menggunakan fungsi GetIconInfo , dan dapat menggambarnya dengan menggunakan fungsi DrawIconEx . Untuk menggambar gambar default untuk ikon, tentukan bendera DI_COMPAT dalam panggilan ke DrawIconEx. Jika Anda tidak menentukan bendera DI_COMPAT , DrawIconEx akan menggambar ikon menggunakan gambar yang ditentukan pengguna.
Ketika sistem menampilkan ikon, sistem harus mengekstrak gambar ikon yang sesuai dari file .exe atau .dll. Sistem menggunakan langkah-langkah berikut untuk memilih gambar ikon:
- Pilih sumber daya RT_GROUP_ICON . Jika ada lebih dari satu sumber daya tersebut, sistem menggunakan sumber daya pertama yang tercantum dalam scrip sumber daya.
- Pilih gambar RT_ICON yang sesuai dari sumber daya RT_GROUP_ICON . Jika ada lebih dari satu gambar, sistem menggunakan kriteria berikut untuk memilih gambar:
- Gambar yang paling dekat dengan ukuran yang diminta dipilih.
- Jika ada dua gambar atau lebih dari ukuran tersebut, gambar yang cocok dengan kedalaman warna tampilan dipilih.
- Jika tidak ada gambar yang sama persis dengan kedalaman warna tampilan, gambar dengan kedalaman warna terbesar yang tidak melebihi kedalaman warna tampilan dipilih. Jika semua melebihi kedalaman warna, yang memiliki kedalaman warna terendah dipilih.
Catatan
Sistem memperlakukan semua kedalaman warna 8 atau lebih bpp sebagai sama. Oleh karena itu, tidak ada keuntungan termasuk gambar 16x16 256 warna dan gambar 16x16 16 warna dalam sumber daya yang sama —sistem hanya akan memilih yang pertama kali ditemuinya. Ketika tampilan dalam mode 8-bpp, sistem akan memilih ikon 16 warna di atas ikon 256 warna, dan akan menampilkan semua ikon menggunakan palet default sistem.
Untuk menampilkan ikon animasi, gunakan kontrol statis seperti yang diperlihatkan dalam fragmen kode berikut.
hIcon = LoadImage(NULL, "ico.ani", IMAGE_ICON, 0, 0, LR_LOADFROMFILE);
SendMessage( hStatic, STM_SETIMAGE, IMAGE_ICON, (LPARAM)(UINT)hIcon);
Penghancuran Ikon
Ketika aplikasi tidak lagi memerlukan ikon yang dibuat dengan menggunakan fungsi CreateIconIndirect , aplikasi harus menghancurkan ikon. Fungsi DestroyIcon menghancurkan handel ikon dan membebaskan memori apa pun yang digunakan oleh ikon. Aplikasi harus menggunakan fungsi ini hanya untuk ikon yang dibuat dengan CreateIconIndirect; tidak perlu menghancurkan ikon lain.
Duplikasi Ikon
Fungsi CopyIcon menyalin handel ikon. Ini memungkinkan aplikasi atau DLL untuk mendapatkan handelnya sendiri ke ikon yang dimiliki oleh modul lain. Kemudian, jika modul lain dibebaskan, aplikasi yang menyalin ikon masih akan dapat menggunakan ikon .
Fungsi CopyImage membuat ikon baru berdasarkan ikon sumber yang ditentukan. Ikon baru bisa lebih besar atau lebih kecil dari ikon sumber.
Untuk informasi tentang menambahkan, menghapus, atau mengganti sumber daya ikon dalam file yang dapat dieksekusi (.exe), lihat Sumber Daya.
Fungsi DuplicateIcon membuat salinan ikon yang sebenarnya.