Come aggiungere elenchi di immagini di visualizzazione elenco
In questo argomento viene illustrato come aggiungere elenchi di immagini a un controllo visualizzazione elenco.
Si creano solo gli elenchi di immagini utilizzati dal controllo. Ad esempio, se l'applicazione non consente all'utente di passare alla visualizzazione icona, non è necessario creare e assegnare un elenco di icone di grandi dimensioni. Se si creano elenchi di immagini di grandi dimensioni e di piccole dimensioni, è necessario che contengano le stesse immagini nello stesso ordine, perché viene usato un singolo valore per identificare l'icona di un elemento della visualizzazione elenco in entrambi gli elenchi di immagini.
Informazioni importanti
Tecnologie
Prerequisiti
- C/C++
- Programmazione dell'interfaccia utente di Windows
Istruzioni
Per visualizzare le immagini degli elementi, è necessario assegnare un elenco di immagini al controllo visualizzazione elenco. A tale scopo, utilizzare il messaggio LVM_edizione Standard TIMAGELIST o la macro corrispondente ListView_SetImageList, specificando se l'elenco di immagini contiene icone di dimensioni complete, icone piccole o immagini di stato. Per recuperare l'handle in un elenco di immagini attualmente assegnato a un controllo visualizzazione elenco, usare il messaggio LVM_GETIMAGELIST. È possibile utilizzare la funzione GetSystemMetrics per determinare le dimensioni appropriate per le icone di dimensioni complete e piccole.
Nell'esempio di codice C++ seguente, la funzione definita dall'applicazione crea prima elenchi di immagini e quindi li assegna a un controllo visualizzazione elenco.
// InitListViewImageLists: Creates image lists for a list-view control.
// This function only creates image lists. It does not insert the items into
// the control, which is necessary for the control to be visible.
//
// Returns TRUE if successful, or FALSE otherwise.
//
// hWndListView: Handle to the list-view control.
// global variable g_hInst: The handle to the module of either a
// dynamic-link library (DLL) or executable (.exe) that contains
// the image to be loaded. If loading a standard or system
// icon, set g_hInst to NULL.
//
BOOL InitListViewImageLists(HWND hWndListView)
{
HICON hiconItem; // Icon for list-view items.
HIMAGELIST hLarge; // Image list for icon view.
HIMAGELIST hSmall; // Image list for other views.
// Create the full-sized icon image lists.
hLarge = ImageList_Create(GetSystemMetrics(SM_CXICON),
GetSystemMetrics(SM_CYICON),
ILC_MASK, 1, 1);
hSmall = ImageList_Create(GetSystemMetrics(SM_CXSMICON),
GetSystemMetrics(SM_CYSMICON),
ILC_MASK, 1, 1);
// Add an icon to each image list.
hiconItem = LoadIcon(g_hInst, MAKEINTRESOURCE(IDI_ITEM));
ImageList_AddIcon(hLarge, hiconItem);
ImageList_AddIcon(hSmall, hiconItem);
DestroyIcon(hiconItem);
// When you are dealing with multiple icons, you can use the previous four lines of
// code inside a loop. The following code shows such a loop. The
// icons are defined in the application's header file as resources, which
// are numbered consecutively starting with IDS_FIRSTICON. The number of
// icons is defined in the header file as C_ICONS.
/*
for(index = 0; index < C_ICONS; index++)
{
hIconItem = LoadIcon (g_hinst, MAKEINTRESOURCE(IDS_FIRSTICON + index));
ImageList_AddIcon(hSmall, hIconItem);
ImageList_AddIcon(hLarge, hIconItem);
Destroy(hIconItem);
}
*/
// Assign the image lists to the list-view control.
ListView_SetImageList(hWndListView, hLarge, LVSIL_NORMAL);
ListView_SetImageList(hWndListView, hSmall, LVSIL_SMALL);
return TRUE;
}
Argomenti correlati