Utilizzo di elenchi di immagini con controlli Header
Gli elementi di intestazione possono visualizzare un'immagine all'interno di un elemento di intestazione. Questa immagine, archiviata in un elenco di immagini associato, è di 16 x 16 pixel e presenta le stesse caratteristiche delle immagini icona usate in un controllo visualizzazione elenco. Per implementare correttamente questo comportamento, è prima necessario creare e inizializzare l'elenco di immagini, associare l'elenco al controllo intestazione e quindi modificare gli attributi dell'elemento di intestazione che visualizzerà l'immagine.
La procedura seguente illustra i dettagli, usando un puntatore a un controllo intestazione (m_pHdrCtrl
) e un puntatore a un elenco di immagini (m_pHdrImages
).
Per visualizzare un'immagine in un elemento di intestazione
Creare un nuovo elenco di immagini (o usare un oggetto elenco di immagini esistente) usando il costruttore CImageList , archiviando il puntatore risultante.
Inizializzare il nuovo oggetto elenco di immagini chiamando CImageList::Create. Il codice seguente è un esempio di questa chiamata.
m_ListImageList.Create(16, 16, ILC_COLOR, 2, 2);
Aggiungere le immagini per ogni elemento di intestazione. Il codice seguente aggiunge due immagini predefinite.
m_ListImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1)); m_ListImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
Associare l'elenco di immagini al controllo intestazione con una chiamata a CHeaderCtrl::SetImageList.
Modificare l'elemento di intestazione per visualizzare un'immagine dall'elenco di immagini associato. Nell'esempio seguente viene assegnata la prima immagine, da
m_phdrImages
, al primo elemento di intestazione,m_pHdrCtrl
.HDITEM curItem = {0}; pHeaderCtrl->SetImageList(&m_ListImageList); curItem.mask = HDI_TEXT | HDI_FORMAT | HDI_WIDTH | HDI_IMAGE; curItem.pszText = _T("Column 1"); curItem.cxy = 100; curItem.iImage = 0; curItem.fmt = HDF_LEFT | HDF_STRING | HDF_IMAGE; pHeaderCtrl->InsertItem(0, &curItem);
Per informazioni dettagliate sui valori dei parametri usati, vedere il CHeaderCtrl pertinente.
Nota
È possibile avere più controlli usando lo stesso elenco di immagini. Ad esempio, in un controllo visualizzazione elenco standard, potrebbe essere presente un elenco di immagini (di 16 x 16 pixel) usato sia dalla visualizzazione icona piccola di un controllo visualizzazione elenco che dagli elementi di intestazione del controllo visualizzazione elenco.