Informazioni sulle icone
Il sistema usa icone nell'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 Hot Spot
- tipi di icone
-
Dimensioni delle icone
- Per modificare le dimensioni dell'icona di sistema piccola
- Per recuperare la dimensione dell'icona piccola del sistema
- Per recuperare le dimensioni dell'icona grande del sistema
- Per recuperare la dimensione dell'icona piccola della shell
- Per modificare le dimensioni dell'icona grande
- Per recuperare le dimensioni dell'icona di grandi dimensioni della shell
- creazione di icone
- visualizzazione icona
- simbolo di distruzione
- Icona duplicazione
Icona punto critico
Uno dei pixel di un'icona è designato come punto attivo , che è il punto in cui il sistema tiene traccia e riconosce come posizione dell'icona. Il punto attivo di un'icona è in genere il pixel che si trova al centro dell'icona. Se si usa la funzioneCreateIconIndirectper 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 SDK (Software Development Kit) contengono identificatori per le icone di sistema — cioè, gli identificatori iniziano con il prefisso IDI_.
Valore | Significato |
---|---|
IDI_APPLICATION MAKEINTRESOURCE(32512) |
icona dell'applicazione predefinita ![]() |
IDI_ERROR MAKEINTRESOURCE(32513) |
icona errore ![]() |
IDI_QUESTION MAKEINTRESOURCE(32514) |
![]() |
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 ![]() |
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 un'applicazione specifica 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 icona:
- Sistema piccolo
- Sistema di grandi dimensioni
- Shell piccola
- Shell di grandi dimensioni
- Jumbo (avvio di Windows Vista)
La piccola icona di sistema viene visualizzata nella barra del titolo della finestra.
Vedere Ridimensionamento delle icone per consigli sulle dimensioni delle icone preferite per l'applicazione.
Per modificare le dimensioni dell'icona piccola del sistema
- Nel Pannello di controllo fare clic su Display, quindi fare clic sulla scheda Aspetto.
- Selezionare Pulsanti Didascalia dall'Elenco oggetto, quindi impostare il campo Dimensione.
Per recuperare le dimensioni dell'icona piccola del sistema
- Chiamare la funzione GetSystemMetrics con SM_CXSMICON e SM_CYSMICON.
L'icona di sistema grande viene usata principalmente dalle applicazioni, ma viene visualizzata anche nella finestra di dialogo ALT+TAB. Le funzioni CreateIconFromResource, DrawIcon, ExtractAssociatedIcon, ExtractIcon, ExtractIconExe LoadIcon utilizzano tutte icone grandi del sistema. 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 di CreateIcon, CreateIconFromResourceEx, CreateIconIndirecte SHGetFileInfo possono essere usate per usare icone di dimensioni diverse dal sistema.
L'icona shell piccola viene usata in Esplora Risorse e nelle finestre di dialogo comuni. Attualmente, l'impostazione predefinita corrisponde alla dimensione ridotta del sistema.
Per recuperare le dimensioni dell'icona piccola della shell
- 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
- Nel Pannello di controllo fare clic su Visualizza, quindi fare clic sulla scheda Aspetto,
- Selezionare Icona dall'elenco elemento, quindi impostare il campo dimensione (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 grandi.
Per recuperare le dimensioni dell'icona grande della shell
- Usare la funzione SHGetFileInfo con SHGFI_SHELLICONSIZE per recuperare un handle dell'elenco di immagini di sistema.
- Chiamare quindi la funzione ImageList_GetIconSize per ottenere le dimensioni dell'icona.
Quando si compila la struttura di WNDCLASSEX da usare per registrare la classe finestra, impostare il membro hIcon sull'icona di grandi dimensioni del sistema (in genere 32x32) e il membro hIconSm all'icona piccola del sistema (in genere 16x16). Per altre informazioni sulle icone delle classi, vedere icone di classi .
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 funzioneLoadImage. 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 ICONA 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 selezionare 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 funzioneCreateIconIndirect, che crea un'icona basata sul contenuto di una strutturaICONINFO. La funzione GetIconInfo riempie la struttura con le coordinate del punto critico e le informazioni sulla bitmap di maschera di 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 icona evita la dipendenza dai dispositivi, semplifica la localizzazione e consente alle applicazioni di condividere forme icona.
La funzioneCreateIconFromResourceExconsente 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 binari da altri file eseguibili o DLL. Un'applicazione deve precedere questa funzione con chiamate alla funzione LookupIconIdFromDirectoryEx e a diverse funzioni delle risorse. 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 funzioneGetIconInfoed è possibile disegnare 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 i passaggi seguenti per selezionare l'immagine dell'icona:
- Selezionare la risorsa RT_GROUP_ICON. Se esistono più risorse 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:
- Viene scelta l'immagine più vicina alle dimensioni richieste.
- Se sono presenti due o più immagini di tale dimensione, viene scelta quella che corrisponde alla profondità di colore dello schermo.
- Se nessuna immagine corrisponde esattamente alla profondità del colore dello schermo, viene scelta l'immagine con la maggiore profondità di colore che non supera la profondità di colore dello schermo. Se tutto supera la profondità del colore, viene scelto quello con la profondità di colore più bassa.
Nota
Il sistema considera tutte le profondità di colore di 8 o più bpp come uguali. Pertanto, non vi è 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 dell'icona
Quando un'applicazione non necessita più di un'icona creata usando la funzione CreateIconIndirect, l'icona verrà eliminata definitivamente. La funzione DestroyIcon distrugge l'handle dell'icona e libera qualsiasi memoria utilizzata dall'icona. Le applicazioni devono usare questa funzione solo per le icone create con CreateIconIndirect; non è necessario distruggere altre icone.
Duplicazione di icone
La funzione CopyIcon copia un'icona handle. Ciò consente a un'applicazione o a una DLL di ottenere il proprio handle a un'icona di proprietà di un altro modulo. Quindi, se l'altro modulo viene liberato, l'applicazione che ha copiato l'icona sarà comunque in grado di usare l'icona.
La funzioneCopyImagecrea una nuova icona basata sull'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 funzioneDuplicateIconcrea una copia effettiva dell'icona.