Usar listas de imágenes con controles de encabezado
Los elementos de encabezado tienen la capacidad de mostrar una imagen dentro de un elemento de encabezado. Esta imagen, almacenada en una lista asociada de la imagen, es 16 x 16 píxeles y tiene las mismas características que las imágenes de icono utilizada en un control de vista de lista. Para implementar este comportamiento correctamente, debe crear e inicializar la lista de imágenes, asociar la lista con el control de encabezado, y modifique los atributos del elemento de encabezado que mostrará la imagen.
El procedimiento siguiente muestra los detalles, mediante un puntero a un control de encabezado (m_pHdrCtrl) y un puntero a una lista de imágenes (m_pHdrImages).
Para mostrar una imagen en un elemento de encabezado
Construye una nueva imagen lista (o utilice un objeto existente de la lista de imágenes) mediante el constructor de CImageList , almacenando el puntero resultante.
Inicializa el nuevo objeto de la lista de imágenes llamando a CImageList::Create. El código siguiente es un ejemplo de esta llamada.
m_ListImageList.Create(16, 16, ILC_COLOR, 2, 2);
Agregue imágenes para cada elemento de encabezado. El código siguiente agrega dos imágenes predefinidas.
m_ListImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1)); m_ListImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
Asociar la lista de imágenes con el control de encabezado con una llamada a CHeaderCtrl::SetImageList.
Modifique el elemento de encabezado para mostrar una imagen de la lista asociada de la imagen. El ejemplo siguiente se asigna la primera imagen, de m_phdrImages, al primer elemento de encabezado, 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);
Para obtener información detallada sobre los valores de parámetros utilizados, vea CHeaderCtrlpertinente.
Nota
Es posible tener varios controles utilizando la misma lista de imágenes.Por ejemplo, en un control estándar de la vista de lista, puede haber una lista de imágenes (16 x 16 imágenes de píxeles) utilizada por tanto la pequeña vista de iconos de un control de vista de lista y los elementos de encabezado de la vista de lista controlan.