Informazioni sulle icone
Il sistema usa icone in tutta l'interfaccia utente per rappresentare oggetti quali file, cartelle, collegamenti, applicazioni e documenti. Le funzioni icona consentono alle applicazioni di creare, caricare, visualizzare, disporre, animare ed eliminare le icone. Per informazioni sulla specifica delle icone per i tipi di file, vedere ExtractIcon.
Questa panoramica fornisce informazioni sugli argomenti seguenti:
- Icona a caldo
- Tipi di icone
-
Dimensioni icona
- Per modificare le dimensioni dell'icona piccola del sistema
- Per recuperare le dimensioni dell'icona di sistema piccola
- Per recuperare le dimensioni dell'icona grande del sistema
- Per recuperare le dimensioni della shell piccola icona
- Per modificare le dimensioni dell'icona grande
- Per recuperare le dimensioni dell'icona di grandi dimensioni della shell
- Creazione dell'icona
- Visualizzazione icona
- Distruzione icona
- Duplicazione delle icone
Icona a caldo
Uno dei pixel in un'icona è designato come punto attivo, ovvero il punto in cui il sistema tiene traccia e riconosce come posizione dell'icona. L'area sensibile di un'icona è in genere il pixel che si trova al centro dell'icona. Se si usa la funzione CreateIconIndirect per creare un'icona, è possibile specificare qualsiasi pixel come punto critico.
Tipi di icone
Il sistema operativo fornisce un set di icone standard disponibili per qualsiasi applicazione da usare in qualsiasi momento. I file di intestazione di Software Development Kit (SDK) contengono identificatori per le icone di sistema , ovvero gli identificatori iniziano con il prefisso IDI_ .
Valore | Significato |
---|---|
IDI_APPLICATION MAKEINTRESOURCE(32512) |
Icona dell'applicazione predefinita |
IDI_ERROR MAKEINTRESOURCE(32513) |
Icona di errore |
IDI_QUESTION MAKEINTRESOURCE(32514) |
Icona del punto interrogativo |
IDI_WARNING MAKEINTRESOURCE(32515) |
Icona avviso |
IDI_INFORMATION MAKEINTRESOURCE(32516) |
Icona Informazioni |
IDI_WINLOGO MAKEINTRESOURCE(32517) |
Icona del logo di Windows |
IDI_SHIELD MAKEINTRESOURCE(32518) |
Icona dello scudo di sicurezza |
Per informazioni sull'utilizzo consigliato delle icone standard, vedere Linee guida .
Inoltre, a partire da Windows Vista, è disponibile un set aggiuntivo di icone della shell di sistema standard tramite il metodo SHGetStockIconInfo .
Le icone personalizzate sono progettate per l'uso in una determinata applicazione e possono essere qualsiasi progettazione. L'utente può caricare icone personalizzate dai file o crearle in fase di esecuzione. Di seguito sono riportate diverse icone personalizzate.
Dimensioni icona
Il sistema usa quattro dimensioni dell'icona:
- Sistema piccolo
- Sistema di grandi dimensioni
- Shell piccola
- Shell grande
- Jumbo (avvio di Windows Vista)
L'icona di sistema piccola viene visualizzata nella finestra didascalia.
Vedere Ridimensionamento delle icone per consigli sulle dimensioni delle icone preferite per l'applicazione.
Per modificare le dimensioni dell'icona piccola del sistema
- Da Pannello di controllo fare clic su Visualizza, quindi sulla scheda Aspetto.
- Selezionare Caption Buttons (Pulsanti didascalia ) nell'elenco Item (Elemento ) e quindi impostare il campo Size (Dimensioni ).
Per recuperare le dimensioni dell'icona di sistema piccola
- Chiamare la funzione GetSystemMetrics con SM_CXSMICON e SM_CYSMICON.
L'icona grande del sistema viene usata principalmente dalle applicazioni, ma viene visualizzata anche nella finestra di dialogo ALT+TAB. Le funzioni CreateIconFromResource, DrawIcon, ExtractAssociatedIcon, ExtractIcon, ExtractIconEx e LoadIcon usano tutte icone di sistema di grandi dimensioni. Le dimensioni dell'icona grande del sistema sono definite dal driver video, pertanto non può essere modificata.
Per recuperare le dimensioni dell'icona grande del sistema
- Chiamare GetSystemMetrics con SM_CXICON e SM_CYICON.
Le funzioni CreateIcon, CreateIconFromResourceEx, CreateIconIndirect e SHGetFileInfo possono essere usate per usare le icone in dimensioni diverse da quelle di sistema di grandi dimensioni.
L'icona piccola della shell viene usata in Esplora risorse e nelle finestre di dialogo comuni. Attualmente, questa impostazione predefinita è di dimensioni ridotte del sistema.
Per recuperare le dimensioni della shell piccola icona
- Usare la funzione SHGetFileInfo con
SHGFI_SHELLICONSIZE | SHGFI_SMALLICON
per recuperare un handle nell'elenco di immagini di sistema. - Chiamare quindi la funzione ImageList_GetIconSize per ottenere le dimensioni dell'icona.
L'icona di grandi dimensioni della shell viene usata sul desktop.
Per modificare le dimensioni dell'icona grande
- Da Pannello di controllo , fare clic su Visualizza, quindi fare clic sulla scheda Aspetto,
- Selezionare Icona nell'elenco Elementi e quindi impostare il campo Dimensioni (questa dimensione viene archiviata nel Registro di sistema, in HKEY_CURRENT_USER\Control Panel, Desktop\WindowMetrics\Shell Icon Size).
- Fare clic sulla scheda Plus! e quindi selezionare la casella di controllo Usa icone di grandi dimensioni .
Per recuperare le dimensioni dell'icona di grandi dimensioni della shell
- Usare la funzione SHGetFileInfo con SHGFI_SHELLICONSIZE per recuperare un handle nell'elenco di immagini di sistema.
- Chiamare quindi la funzione ImageList_GetIconSize per ottenere le dimensioni dell'icona.
Quando si compila la struttura WNDCLASSEX da usare per registrare la classe di finestra, impostare il membro hIcon sull'icona di grandi dimensioni del sistema (in genere 32x32) e il membro hIconSm sull'icona piccola del sistema (in genere 16x16). Per altre informazioni sulle icone delle classi, vedere Icone della classe.
Creazione icona
Le icone standard sono predefinite, quindi non è necessario crearle. Per usare un'icona standard, un'applicazione può ottenere il relativo handle usando la funzione LoadImage . Un handle icona è un valore univoco del tipo HICON che identifica un'icona standard o personalizzata.
Per creare un'icona personalizzata per un'applicazione, in genere si usa un'applicazione grafica e si include la risorsa ICON nel file di definizione delle risorse dell'applicazione. In fase di esecuzione è possibile chiamare LoadIcon o LoadImage per recuperare un handle all'icona. Una risorsa icona può contenere un gruppo di immagini per diversi dispositivi di visualizzazione. LoadIcon e LoadImage seleziona automaticamente l'icona più appropriata dal gruppo per il dispositivo di visualizzazione corrente.
Un'applicazione può anche creare un'icona personalizzata in fase di esecuzione usando la funzione CreateIconIndirect , che crea un'icona in base al contenuto di una struttura ICONINFO . La funzione GetIconInfo riempie la struttura con le coordinate del punto caldo e le informazioni sulla bitmap di maschera bit e la bitmap di colore per l'icona.
Le applicazioni devono implementare icone personalizzate come risorse e devono usare LoadIcon o LoadImage anziché creare l'icona in fase di esecuzione. L'uso delle risorse dell'icona evita la dipendenza dei dispositivi, semplifica la localizzazione e consente alle applicazioni di condividere forme icona.
La funzione CreateIconFromResourceEx consente a un'applicazione di esplorare le risorse del sistema e creare icone e cursori in base ai dati delle risorse. CreateIconFromResourceEx crea un'icona basata sui dati delle risorse binarie da altri file eseguibili o DLL. Un'applicazione deve precedere questa funzione con chiamate alla funzione LookupIconIdFromDirectoryEx e diverse funzioni della risorsa. LookupIconIdFromDirectoryEx restituisce l'identificatore dei dati dell'icona più appropriati per il dispositivo di visualizzazione corrente.
Visualizzazione icona
È possibile recuperare l'immagine per un'icona usando la funzione GetIconInfo e disegnarla usando la funzione DrawIconEx . Per disegnare l'immagine predefinita per un'icona, specificare il flag DI_COMPAT nella chiamata a DrawIconEx. Se non si specifica il flag di DI_COMPAT , DrawIconEx disegna l'icona usando l'immagine specificata dall'utente.
Quando il sistema visualizza un'icona, deve estrarre l'immagine dell'icona appropriata dal file .exe o .dll. Il sistema usa la procedura seguente per selezionare l'immagine dell'icona:
- Selezionare la risorsa RT_GROUP_ICON . Se esiste più di una risorsa di questo tipo, il sistema usa la prima risorsa elencata nella risorsa scrip.
- Selezionare l'immagine RT_ICON appropriata dalla risorsa RT_GROUP_ICON . Se esistono più immagini, il sistema usa i criteri seguenti per scegliere un'immagine:
- L'immagine più vicina alle dimensioni richieste viene scelta.
- Se sono presenti due o più immagini di tale dimensione, viene scelta quella corrispondente alla profondità di colore dello schermo.
- Se nessuna immagine corrisponde esattamente alla profondità di colore dello schermo, l'immagine con la maggiore profondità di colore che non supera la profondità di colore del display viene scelta. Se tutto supera la profondità del colore, viene scelto quello con la profondità di colore più bassa.
Nota
Il sistema tratta tutte le profondità di colore di 8 o più bpp come uguale. Pertanto, non esiste alcun vantaggio di includere un'immagine a 16x16 a 256 colori e un'immagine a 16x16 a 16 colori nella stessa risorsa, il sistema sceglierà semplicemente il primo che incontra. Quando la visualizzazione è in modalità 8 bpp, il sistema sceglierà un'icona a 16 colori su un'icona a 256 colori e visualizzerà tutte le icone usando la tavolozza predefinita del sistema.
Per visualizzare un'icona animata, usare un controllo statico come illustrato nel frammento di codice seguente.
hIcon = LoadImage(NULL, "ico.ani", IMAGE_ICON, 0, 0, LR_LOADFROMFILE);
SendMessage( hStatic, STM_SETIMAGE, IMAGE_ICON, (LPARAM)(UINT)hIcon);
Distruzione icona
Quando un'applicazione non ha più bisogno di un'icona creata usando la funzione CreateIconIndirect , deve distruggere l'icona. La funzione DestroyIcon elimina l'handle dell'icona e libera qualsiasi memoria usata dall'icona. Le applicazioni devono usare questa funzione solo per le icone create con CreateIconIndirect; non è necessario eliminare altre icone.
Duplicazione icona
La funzione CopyIcon copia un handle dell'icona. Ciò consente a un'applicazione o a una DLL di ottenere il proprio handle a un'icona di proprietà di un altro modulo. Se l'altro modulo viene liberato, l'applicazione copiata dall'icona sarà comunque in grado di usare l'icona.
La funzione CopyImage crea una nuova icona in base all'icona di origine specificata. La nuova icona può essere più grande o più piccola dell'icona di origine.
Per informazioni sull'aggiunta, la rimozione o la sostituzione delle risorse dell'icona nei file eseguibili (.exe), vedere Risorse.
La funzione DuplicateIcon crea una copia effettiva dell'icona.