Partager via


Utilisation des listes d'images avec les contrôles header

Les éléments d'en-tête ont la possibilité d'afficher une image dans un élément d'en-tête. Cette image, stockée dans une liste d'image associée, est de 16 x 16 pixels et a les mêmes caractéristiques que les images d'icônes utilisées dans une liste de contrôle de vue. Pour implémenter ce comportement avec succès, vous devez d'abord créer et démarrer la liste des images, associer la liste avec le contrôle de l'en-tête, puis modifier les attributs de l'élément d'en-tête qui affiche l'image.

La procédure suivante montre ces informations, avec un pointeur à un contrôle d'en-tête (m_pHdrCtrl) et un pointeur vers une liste des images (m_pHdrImages).

Pour afficher une image dans un élément d'en-tête

  1. Construisez une liste d'images (ou utilisez un objet liste des images existant) à l'aide du constructeur CImageList, en enregistrant le pointeur résultant.

  2. Initialise un nouvel objet liste des images en appelant CImageList::Create. La ligne de code suivante donne une illustration pour ce choix.

    m_ListImageList.Create(16, 16, ILC_COLOR, 2, 2);
    
  3. Ajouter des images pour chaque élément d'en-tête. Le code suivant ajoute deux images prédéfinies.

    m_ListImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
    m_ListImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
    
  4. Associez la liste des images au contrôle header par un appel à CHeaderCtrl::SetImageList.

  5. Modifiez l'élément d'en-tête pour afficher une image à la liste des images associée. L'exemple suivant affecte la première image, de m_phdrImages, au premier élément d'en-tête, 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);
    

Pour plus d'informations sur les valeurs des paramètre utilisées, consultez CHeaderCtrl.

Notes

Il est possible d'avoir plusieurs commandes en utilisant la même liste des images.Par exemple, dans un contrôle de liste de vue standard, il peut y avoir une liste des images (d'images de 16 x 16 pixels) utilisée par la vue de petite icône d'un contrôle de liste de vue et les éléments d'en-tête de contrôle de liste de vue.

Voir aussi

Référence

À l'aide de CHeaderCtrl