Używanie list obrazów z formantami nagłówka
Elementy nagłówka mają możliwość wyświetlania obrazu w elemencie nagłówka. Ten obraz, przechowywany na skojarzonej liście obrazów, ma 16 x 16 pikseli i ma takie same cechy jak obrazy ikon używane w kontrolce widoku listy. Aby zaimplementować to zachowanie pomyślnie, należy najpierw utworzyć i zainicjować listę obrazów, skojarzyć listę z kontrolką nagłówka, a następnie zmodyfikować atrybuty elementu nagłówka, który wyświetli obraz.
Poniższa procedura ilustruje szczegóły przy użyciu wskaźnika do kontrolki nagłówka (m_pHdrCtrl
) i wskaźnika do listy obrazów (m_pHdrImages
).
Aby wyświetlić obraz w elemencie nagłówka
Utwórz nową listę obrazów (lub użyj istniejącego obiektu listy obrazów) przy użyciu konstruktora CImageList , przechowując wynikowy wskaźnik.
Zainicjuj nowy obiekt listy obrazów, wywołując polecenie CImageList::Create. Poniższy kod jest jednym z przykładów tego wywołania.
m_ListImageList.Create(16, 16, ILC_COLOR, 2, 2);
Dodaj obrazy dla każdego elementu nagłówka. Poniższy kod dodaje dwa wstępnie zdefiniowane obrazy.
m_ListImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1)); m_ListImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
Skojarz listę obrazów z kontrolką nagłówka z wywołaniem metody CHeaderCtrl::SetImageList.
Zmodyfikuj element nagłówka, aby wyświetlić obraz ze skojarzonej listy obrazów. Poniższy przykład przypisuje pierwszy obraz z
m_phdrImages
, do pierwszego elementu nagłówka ,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);
Aby uzyskać szczegółowe informacje na temat używanych wartości parametrów, zapoznaj się z odpowiednim CHeaderCtrl.
Uwaga
Istnieje możliwość posiadania wielu kontrolek przy użyciu tej samej listy obrazów. Na przykład w standardowej kontrolce widoku listy może istnieć lista obrazów (16 x 16 pikseli) używana zarówno przez mały widok ikon kontrolki widoku listy, jak i elementy nagłówka kontrolki widoku listy.