Utilisation de listes d'images avec des 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’images associée, est de 16 x 16 pixels et présente les mêmes caractéristiques que les images d’icône utilisées dans un contrôle d’affichage de liste. Pour implémenter ce comportement avec succès, vous devez d’abord créer et initialiser la liste d’images, associer la liste au contrôle d’en-tête, puis modifier les attributs de l’élément d’en-tête qui affiche l’image.

La procédure suivante illustre les détails, à l’aide d’un pointeur vers un contrôle d’en-tête (m_pHdrCtrl) et d’un pointeur vers une liste d’images (m_pHdrImages).

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

  1. Construisez une nouvelle liste d’images (ou utilisez un objet de liste d’images existant) à l’aide du constructeur CImageList , stockant le pointeur résultant.

  2. Initialisez le nouvel objet de liste d’images en appelant CImageList ::Create. Le code suivant est un exemple de cet appel.

    m_ListImageList.Create(16, 16, ILC_COLOR, 2, 2);
    
  3. Ajoutez les 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 d’images au contrôle d’en-tête à un appel à CHeaderCtrl ::SetImageList.

  5. Modifiez l’élément d’en-tête pour afficher une image à partir de la liste d’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 de paramètre utilisées, consultez le CHeaderCtrl pertinent.

Remarque

Il est possible d’avoir plusieurs contrôles à l’aide de la même liste d’images. Par exemple, dans un contrôle d’affichage de liste standard, il peut y avoir une liste d’images (d’images de 16 x 16 pixels) utilisée à la fois par le petit affichage icône d’un contrôle d’affichage de liste et les éléments d’en-tête du contrôle d’affichage de liste.

Voir aussi

Utilisation de CHeaderCtrl