Partager via


La classe CImageList

Fournit les fonctionnalités du contrôle commun de liste d'images Windows.

Syntaxe

class CImageList : public CObject

Membres

Constructeurs publics

Nom Description
CImageList::CImageList Construit un objet CImageList.

Méthodes publiques

Nom Description
CImageList::Add Ajoute une image ou des images à une liste d’images.
CImageList::Attach Attache une liste d’images à un CImageList objet.
CImageList::BeginDrag Commence à faire glisser une image.
CImageList::Copy Copie une image dans un CImageList objet.
CImageList::Create Initialise une liste d’images et l’attache à un CImageList objet.
CImageList::DeleteImageList Supprime une liste d’images.
CImageList::DeleteTempMap Appelé par le gestionnaire d’inactivité CWinApp pour supprimer tout objet temporaire CImageList créé par FromHandle.
CImageList::Detach Détache un objet de liste d’images d’un CImageList objet et retourne un handle à une liste d’images.
CImageList::DragEnter Verrouille les mises à jour pendant une opération de glisser et affiche l’image glisser à une position spécifiée.
CImageList::DragLeave Déverrouille la fenêtre et masque l’image glisser afin que la fenêtre puisse être mise à jour.
CImageList::DragMove Déplace l'image glissée lors d'une opération de glisser-déposer.
CImageList::DragShowNolock Affiche ou masque l’image glisser pendant une opération de glissement, sans verrouiller la fenêtre.
CImageList::Draw Dessine l’image qui est déplacée pendant une opération de glisser-déplacer.
CImageList::DrawEx Dessine un élément de liste d’images dans le contexte d’appareil spécifié. La fonction utilise le style de dessin spécifié et fusionne l’image avec la couleur spécifiée.
CImageList::DrawIndirect Dessine une image à partir d’une liste d’images.
CImageList::EndDrag Termine une opération de glisser.
CImageList::ExtractIcon Crée une icône basée sur une image et un masque dans une liste d’images.
CImageList::FromHandle Retourne un pointeur vers un CImageList objet lorsqu’un handle est donné à une liste d’images. Si aucun objet CImageList n'est attaché au handle, un objet CImageList temporaire est créé et attaché.
CImageList::FromHandlePermanent Retourne un pointeur vers un CImageList objet lorsqu’un handle est donné à une liste d’images. Si un CImageList objet n’est pas attaché au handle, NULL est retourné.
CImageList::GetBkColor Récupère la couleur d’arrière-plan actuelle d’une liste d’images.
CImageList::GetDragImage Obtient la liste d’images temporaires utilisée pour le glissement.
CImageList::GetImageCount Récupère le nombre d’images dans une liste d’images.
CImageList::GetImageInfo Récupère des informations sur une image.
CImageList::GetSafeHandle m_hImageListRécupère .
CImageList::Read Lit une liste d’images à partir d’une archive.
CImageList::Remove Supprime une image d’une liste d’images.
CImageList::Replace Remplace une image dans une liste d’images par une nouvelle image.
CImageList::SetBkColor Définit la couleur d’arrière-plan d’une liste d’images.
CImageList::SetDragCursorImage Crée une image glisser.
CImageList::SetImageCount Réinitialise le nombre d’images dans une liste d’images.
CImageList::SetOverlayImage Ajoute l’index de base zéro d’une image à la liste des images à utiliser comme masques de superposition.
CImageList::Write Écrit une liste d’images dans une archive.

Opérateurs publics

Nom Description
CImageList::operator HIMAGELIST Retourne le HIMAGELIST fichier attaché au CImageList.

Membres de données publics

Nom Description
CImageList::m_hImageList Handle contenant la liste d’images jointe à cet objet.

Notes

Une « liste d’images » est une collection d’images de même taille, chacune pouvant être référencée par son index de base zéro. Les listes d’images sont utilisées pour gérer efficacement de grands ensembles d’icônes ou de bitmaps. Toutes les images d’une liste d’images sont contenues dans une image bitmap unique et large au format d’appareil à l’écran. Une liste d’images peut également inclure une bitmap monochrome qui contient des masques utilisés pour dessiner des images de manière transparente (style d’icône). L’interface de programmation d’applications Microsoft Win32 fournit des fonctions de liste d’images qui vous permettent de dessiner des images, de créer et de détruire des listes d’images, d’ajouter et de supprimer des images, de remplacer des images, de fusionner des images et de faire glisser des images.

Ce contrôle (et par conséquent la CImageList classe) est disponible uniquement pour les programmes exécutés sous Windows 95/98 et Windows NT version 3.51 et ultérieure.

Pour plus d’informations sur l’utilisation CImageList, consultez Contrôles et utilisation CImageList.

Hiérarchie d'héritage

CObject

CImageList

Spécifications

En-tête : afxcmn.h

CImageList::Add

Appelez cette fonction pour ajouter une ou plusieurs images ou une icône à une liste d’images.

int Add(
    CBitmap* pbmImage,
    CBitmap* pbmMask);

int Add(
    CBitmap* pbmImage,
    COLORREF crMask);

int Add(HICON hIcon);

Paramètres

pbmImage
Pointeur vers la bitmap contenant l’image ou les images. Le nombre d’images est déduit de la largeur de la bitmap.

pbmMask
Pointeur vers la bitmap contenant le masque. Si aucun masque n’est utilisé avec la liste d’images, ce paramètre est ignoré.

crMask
Couleur utilisée pour générer le masque. Chaque pixel de cette couleur dans la bitmap donnée est modifié en noir et le bit correspondant dans le masque est défini sur un.

hIcon
Handle de l’icône qui contient la bitmap et le masque de la nouvelle image.

Valeur de retour

Index de base zéro de la première nouvelle image en cas de réussite ; sinon - 1.

Notes

Vous êtes responsable de la libération de la poignée d’icône lorsque vous en avez terminé.

Exemple

// Add my icons.
m_myImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
m_myImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));

// Add my bitmap, make all black pixels transparent.
CBitmap bm;
bm.LoadBitmap(IDB_BITMAP1);
m_myImageList.Add(&bm, RGB(0, 0, 0));

CImageList::Attach

Appelez cette fonction pour attacher une liste d’images à un CImageList objet.

BOOL Attach(HIMAGELIST hImageList);

Paramètres

hImageList
Handle vers un objet de liste d’images.

Valeur de retour

Différent de zéro si la pièce jointe a réussi ; sinon 0.

Exemple

void AddQuestion(HIMAGELIST hmyImageList)
{
   CImageList imgList;

   // Attach the image list handle to the CImageList object.
   imgList.Attach(hmyImageList);

   // Add a new icon to the image list.
   imgList.Add(AfxGetApp()->LoadStandardIcon(IDI_QUESTION));

   // Detach the handle from the CImageList object.
   imgList.Detach();
}

CImageList::BeginDrag

Appelez cette fonction pour commencer à faire glisser une image.

BOOL BeginDrag(
    int nImage,
    CPoint ptHotSpot);

Paramètres

nImage
Index de base zéro de l’image à faire glisser.

ptHotSpot
Coordonnées de la position de glissement de départ (généralement, position du curseur). Les coordonnées sont relatives au coin supérieur gauche de l’image.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Cette fonction crée une liste d’images temporaire utilisée pour le glissement. L’image combine l’image spécifiée et son masque avec le curseur actuel. En réponse aux messages suivants WM_MOUSEMOVE , vous pouvez déplacer l’image glisser à l’aide de la DragMove fonction membre. Pour mettre fin à l’opération de glisser, vous pouvez utiliser la EndDrag fonction membre.

Exemple

void CImageListDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
   // Initialize the drag image (usually called from WM_LBUTTONDOWN).
   m_myImageList.BeginDrag(0, CPoint(0, 0));
   m_myImageList.DragEnter(this, point);

   CDialog::OnLButtonDown(nFlags, point);
}

CImageList::CImageList

Construit un objet CImageList.

CImageList();

CImageList::Copy

Cette fonction membre implémente le comportement de la fonction Win32 ImageList_Copy, comme décrit dans le SDK Windows.

BOOL Copy(
    int iDst,
    int iSrc,
    UINT uFlags = ILCF_MOVE);

BOOL Copy(
    int iDst,
    CImageList* pSrc,
    int iSrc,
    UINT uFlags = ILCF_MOVE);

Paramètres

iDst
Index de base zéro de l’image à utiliser comme destination de l’opération de copie.

iSrc
Index de base zéro de l’image à utiliser comme source de l’opération de copie.

uFlags
Valeur de l’indicateur de bits qui spécifie le type d’opération de copie à effectuer. Ce paramètre peut avoir l'une des valeurs suivantes :

Valeur Signification
ILCF_MOVE L’image source est copiée dans l’index de l’image de destination. Cette opération entraîne plusieurs instances d’une image donnée. ILCF_MOVE est la valeur par défaut.
ILCF_SWAP Les images source et de destination échangent des positions dans la liste d’images.

pSrc
Pointeur vers un CImageList objet qui est la cible de l’opération de copie.

Valeur de retour

Valeur différente de zéro en cas de réussite ; sinon, zéro.

Exemple

CImageList myImageList2;
myImageList2.Create(32, 32, ILC_COLOR8, 0, 4);

// Copy the first image from myImageList2 and make it
// the first image of m_myImageList.
m_myImageList.Copy(0, &myImageList2, 0, ILCF_MOVE);

// Recopy the image to make it also the last image in m_myImageList.
m_myImageList.Copy(m_myImageList.GetImageCount() - 1, (int)0,
                   (UINT)ILCF_MOVE);

CImageList::Create

Initialise une liste d’images et l’attache à un CImageList objet.

BOOL Create(
    int cx,
    int cy,
    UINT nFlags,
    int nInitial,
    int nGrow);

BOOL Create(
    UINT nBitmapID,
    int cx,
    int nGrow,
    COLORREF crMask);

BOOL Create(
    LPCTSTR lpszBitmapID,
    int cx,
    int nGrow,
    COLORREF crMask);

BOOL Create(
    CImageList& imagelist1,
    int nImage1,
    CImageList& imagelist2,
    int nImage2,
    int dx,
    int dy);

BOOL Create(CImageList* pImageList);

Paramètres

cx
Dimensions de chaque image, en pixels.

cy
Dimensions de chaque image, en pixels.

nFlags
Spécifie le type de liste d’images à créer. Ce paramètre peut être une combinaison des valeurs suivantes, mais il ne peut inclure qu’une seule des ILC_COLOR valeurs.

Valeur Signification
ILC_COLOR Utilisez le comportement par défaut si aucun des autres ILC_COLOR* indicateurs n’est spécifié. En règle générale, la valeur par défaut est ILC_COLOR4; mais pour les pilotes d’affichage plus anciens, la valeur par défaut est ILC_COLORDDB.
ILC_COLOR4 Utilisez une section bitmap indépendante de l’appareil (DIB) 4 bits (16 couleurs) comme bitmap pour la liste d’images.
ILC_COLOR8 Utilisez une section DIB 8 bits. Les couleurs utilisées pour la table de couleurs sont les mêmes couleurs que la palette de demi-teintes.
ILC_COLOR16 Utilisez une section DIB 16 bits (couleur 32/64 ko).
ILC_COLOR24 Utilisez une section DIB 24 bits.
ILC_COLOR32 Utilisez une section DIB 32 bits.
ILC_COLORDDB Utilisez une bitmap dépendante de l’appareil.
ILC_MASK Utilise un masque. La liste d’images contient deux bitmaps, dont l’une est une bitmap monochrome utilisée comme masque. Si cette valeur n’est pas incluse, la liste d’images contient une seule bitmap. Consultez Dessin d’images à partir d’une liste d’images pour plus d’informations sur les images masquées.

nInitial
Nombre d’images que contient initialement la liste d’images.

nGrow
Nombre d’images par lesquelles la liste d’images peut croître lorsque le système doit redimensionner la liste pour créer de la place pour les nouvelles images. Ce paramètre représente le nombre de nouvelles images que la liste d’images redimensionnées peut contenir.

nBitmapID
ID de ressource de la bitmap à associer à la liste d’images.

crMask
Couleur utilisée pour générer un masque. Chaque pixel de cette couleur dans la bitmap spécifiée est remplacé par le noir et le bit correspondant dans le masque est défini sur un.

lpszBitmapID
Chaîne contenant les ID de ressource des images.

imagelist1
Référence à un objet CImageList.

nImage1
Index de la première image existante.

imagelist2
Référence à un objet CImageList.

nImage2
Index de la deuxième image existante.

dx
Décalage de l’axe x de la deuxième image en relation avec la première image, en pixels.

dy
Décalage de l’axe y de la deuxième image en relation avec la première image, en pixels.

pImageList
Pointeur vers un objet CImageList.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Vous construisez une CImageList étape en deux étapes. Tout d’abord, appelez le constructeur, puis appelez Create, qui crée la liste d’images et l’attache à l’objet CImageList .

Exemple

m_myImageList.Create(32, 32, ILC_COLOR8, 0, 4);

CImageList::DeleteImageList

Appelez cette fonction pour supprimer une liste d’images.

BOOL DeleteImageList();

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Exemple

// Delete the image list and verify.
myImageList2.DeleteImageList();
ASSERT(myImageList2.GetSafeHandle() == NULL);

CImageList::DeleteTempMap

Appelé automatiquement par le CWinApp gestionnaire d’inactivité, DeleteTempMap supprime tous les objets temporaires créés CImageList par FromHandle, mais ne détruit aucun handle ( hImageList) temporairement associé aux ImageList objets.

static void PASCAL DeleteTempMap();

Exemple

// Note that this is a static member so an instantiated CImageList
// object is unnecessary.
CImageList::DeleteTempMap();

CImageList::Detach

Appelez cette fonction pour détacher un objet de liste d’images d’un CImageList objet.

HIMAGELIST Detach();

Valeur de retour

Handle vers un objet de liste d’images.

Notes

Cette fonction retourne un handle à l’objet de liste d’images.

Exemple

Consultez l’exemple pour CImageList::Attach.

CImageList::DragEnter

Pendant une opération de glisser, verrouille les mises à jour de la fenêtre spécifiée par pWndLock et affiche l’image glisser à la position spécifiée par point.

static BOOL PASCAL DragEnter(
    CWnd* pWndLock,
    CPoint point);

Paramètres

pWndLock
Pointeur vers la fenêtre propriétaire de l’image glisser.

point
Position à laquelle afficher l’image glisser. Les coordonnées sont relatives au coin supérieur gauche de la fenêtre (et non à la zone cliente).

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Les coordonnées sont relatives au coin supérieur gauche de la fenêtre. Vous devez donc compenser les largeurs des éléments de fenêtre, telles que la bordure, la barre de titre et la barre de menus, lors de la spécification des coordonnées.

Si pWndLock c’est NULLle cas, cette fonction dessine l’image dans le contexte d’affichage associé à la fenêtre de bureau, et les coordonnées sont relatives au coin supérieur gauche de l’écran.

Cette fonction verrouille toutes les autres mises à jour de la fenêtre donnée pendant l’opération de glissement. Si vous devez effectuer un dessin pendant une opération de glissement, par exemple mettre en surbrillance la cible d’une opération de glisser-déplacer, vous pouvez masquer temporairement l’image déplacée à l’aide de la CImageList::DragLeave fonction.

Exemple

Consultez l’exemple pour CImageList::BeginDrag.

CImageList::DragLeave

Déverrouille la fenêtre spécifiée pWndLock et masque l’image glisser, ce qui permet la mise à jour de la fenêtre.

static BOOL PASCAL DragLeave(CWnd* pWndLock);

Paramètres

pWndLock
Pointeur vers la fenêtre propriétaire de l’image glisser.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Exemple

Consultez l’exemple pour CImageList::EndDrag.

CImageList::DragMove

Appelez cette fonction pour déplacer l’image qui est déplacée pendant une opération de glisser-déplacer.

static BOOL PASCAL DragMove(CPoint pt);

Paramètres

pt
Nouvelle position de glisser.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Cette fonction est généralement appelée en réponse à un WM_MOUSEMOVE message. Pour commencer une opération de glisser, utilisez la BeginDrag fonction membre.

Exemple

void CImageListDlg::OnMouseMove(UINT nFlags, CPoint point)
{
   m_myImageList.DragMove(point);

   CDialog::OnMouseMove(nFlags, point);
}

CImageList::DragShowNolock

Affiche ou masque l’image glisser pendant une opération de glissement, sans verrouiller la fenêtre.

static BOOL PASCAL DragShowNolock(BOOL bShow);

Paramètres

bShow
Spécifie si l’image de glisser doit être affichée.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

La CImageList::DragEnter fonction verrouille toutes les mises à jour de la fenêtre pendant une opération de glissement. Toutefois, cette fonction ne verrouille pas la fenêtre.

CImageList::Draw

Appelez cette fonction pour dessiner l’image qui est déplacée pendant une opération de glisser-déplacer.

BOOL Draw(
    CDC* pDC,
    int nImage,
    POINT pt,
    UINT nStyle);

Paramètres

pDC
Pointeur vers le contexte de l’appareil de destination.

nImage
Index de base zéro de l’image à dessiner.

pt
Emplacement auquel dessiner dans le contexte de l’appareil spécifié.

nStyle
Indicateur spécifiant le style de dessin. Il peut s’agir d’une ou plusieurs de ces valeurs :

Valeur Signification
ILD_BLEND25, ILD_FOCUS Dessine l’image, en mélangeant 25 % avec la couleur de surbrillance du système. Cette valeur n’a aucun effet si la liste d’images ne contient pas de masque.
ILD_BLEND50, , ILD_SELECTEDILD_BLEND Dessine l’image, en fusionnant 50 % avec la couleur de surbrillance du système. Cette valeur n’a aucun effet si la liste d’images ne contient pas de masque.
ILD_MASK Dessine le masque.
ILD_NORMAL Dessine l’image à l’aide de la couleur d’arrière-plan de la liste d’images. Si la couleur d’arrière-plan est la CLR_NONE valeur, l’image est dessinée de manière transparente à l’aide du masque.
ILD_TRANSPARENT Dessine l’image de manière transparente à l’aide du masque, quelle que soit la couleur d’arrière-plan.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Exemple

Consultez l’exemple pour CImageList::SetOverlayImage.

CImageList::DrawEx

Dessine un élément de liste d’images dans le contexte d’appareil spécifié.

BOOL DrawEx(
    CDC* pDC,
    int nImage,
    POINT pt,
    SIZE sz,
    COLORREF clrBk,
    COLORREF clrFg,
    UINT nStyle);

Paramètres

pDC
Pointeur vers le contexte de l’appareil de destination.

nImage
Index de base zéro de l’image à dessiner.

pt
Emplacement auquel dessiner dans le contexte de l’appareil spécifié.

sz
Taille de la partie de l’image à dessiner par rapport au coin supérieur gauche de l’image. Consultez dx et dy dans ImageList_DrawEx le Kit de développement logiciel (SDK) Windows.

clrBk
Couleur d’arrière-plan de l’image. ImageList_DrawEx Consultez rgbBk le Kit de développement logiciel (SDK) Windows.

clrFg
Couleur de premier plan de l’image. ImageList_DrawEx Consultez rgbFg le Kit de développement logiciel (SDK) Windows.

nStyle
Indicateur spécifiant le style de dessin. ImageList_DrawEx Consultez fStyle le Kit de développement logiciel (SDK) Windows.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

La fonction utilise le style de dessin spécifié et fusionne l’image avec la couleur spécifiée.

Exemple

m_myImageList.DrawEx(&dc, 0, CPoint(0, 0), CSize(16, 16), CLR_DEFAULT,
                     CLR_DEFAULT, ILD_IMAGE);

CImageList::DrawIndirect

Appelez cette fonction membre pour dessiner une image à partir d’une liste d’images.

BOOL DrawIndirect(IMAGELISTDRAWPARAMS* pimldp);

BOOL DrawIndirect(
    CDC* pDC,
    int nImage,
    POINT pt,
    SIZE sz,
    POINT ptOrigin,
    UINT fStyle = ILD_NORMAL,
    DWORD dwRop = SRCCOPY,
    COLORREF rgbBack = CLR_DEFAULT,
    COLORREF rgbFore = CLR_DEFAULT,
    DWORD fState = ILS_NORMAL,
    DWORD Frame = 0,
    COLORREF crEffect = CLR_DEFAULT);

Paramètres

pimldp
Pointeur vers une IMAGELISTDRAWPARAMS structure qui contient des informations sur l’opération de dessin.

pDC
Pointeur vers le contexte de l’appareil de destination. Vous devez supprimer cet CDC objet lorsque vous l’avez terminé.

nImage
Index de base zéro de l’image à dessiner.

pt
Structure POINT contenant les coordonnées x et y où l’image sera dessinée.

sz
Structure SIZE indiquant la taille de l’image à dessiner.

ptOrigin
Structure POINT contenant les coordonnées x et y spécifiant l’angle supérieur gauche de l’opération de dessin par rapport à l’image elle-même. Les pixels de l’image qui se trouvent à gauche de la coordonnée x et au-dessus de la coordonnée y ne sont pas dessinés.

fStyle
Indicateur spécifiant le style de dessin et, éventuellement, l’image de superposition. Consultez la section Remarques pour plus d’informations sur l’image de superposition. L’implémentation MFC par défaut, ILD_NORMALdessine l’image à l’aide de la couleur d’arrière-plan de la liste d’images. Si la couleur d’arrière-plan est la CLR_NONE valeur, l’image est dessinée de manière transparente à l’aide d’un masque.

D’autres styles possibles sont décrits sous le fStyle membre de la IMAGELISTDRAWPARAMS structure.

dwRop
Valeur spécifiant un code d’opération raster. Ces codes définissent la façon dont les données de couleur du rectangle source seront combinées avec les données de couleur du rectangle de destination pour obtenir la couleur finale. Implémentation par défaut de MFC, SRCCOPYcopie le rectangle source directement dans le rectangle de destination. Ce paramètre est ignoré si le fStyle paramètre n’inclut pas l’indicateur ILD_ROP .

D’autres valeurs possibles sont décrites sous le dwRop membre de la IMAGELISTDRAWPARAMS structure.

rgbBack
Couleur d’arrière-plan de l’image, par défaut CLR_DEFAULT. Ce paramètre peut être une valeur RVB définie par l’application ou l’une des valeurs suivantes :

Valeur Signification
CLR_DEFAULT Couleur d’arrière-plan par défaut. L’image est dessinée à l’aide de la couleur d’arrière-plan de la liste d’images.
CLR_NONE Aucune couleur d’arrière-plan. L’image est dessinée de manière transparente.

rgbFore
Couleur de premier plan de l’image, par défaut CLR_DEFAULT. Ce paramètre peut être une valeur RVB définie par l’application ou l’une des valeurs suivantes :

Valeur Signification
CLR_DEFAULT Couleur de premier plan par défaut. L’image est dessinée à l’aide de la couleur de surbrillance système comme couleur de premier plan.
CLR_NONE Aucune couleur de fusion. L’image est fusionnée avec la couleur du contexte de l’appareil de destination.

Ce paramètre est utilisé uniquement si fStyle le ou ILD_BLEND50 l’indicateur ILD_BLEND25 est inclus.

fState
Indicateur spécifiant l’état du dessin. Ce membre peut contenir un ou plusieurs indicateurs d’état de liste d’images.

Frame
Affecte le comportement des effets de saturation et de fusion alpha.

Lorsqu’il est utilisé avec ILS_SATURATE, ce membre contient la valeur ajoutée à chaque composant de couleur du triplet RVB pour chaque pixel de l’icône.

Lorsqu’il est utilisé avec ILS_APLHA, ce membre contient la valeur du canal alpha. Cette valeur peut être comprise entre 0 et 255, avec 0 étant complètement transparent et 255 étant complètement opaque.

crEffect
Valeur COLORREF utilisée pour les effets de lumière et d’ombre.

Valeur de retour

TRUE si l’image est correctement dessinée ; sinon FALSE.

Notes

Utilisez la première version si vous souhaitez remplir vous-même la structure Win32. Utilisez la deuxième version si vous souhaitez tirer parti d’un ou plusieurs arguments par défaut de MFC ou éviter de gérer la structure.

Une image de superposition est une image dessinée au-dessus de l’image principale, spécifiée dans cette fonction membre par le nImage paramètre. Dessinez un masque de superposition à l’aide de la Draw fonction membre avec l’index de base un du masque de superposition spécifié à l’aide de la INDEXTOOVERLAYMASK macro.

Exemple

int i, dx, cx, cy, nCount = m_myImageList.GetImageCount();

::ImageList_GetIconSize(m_myImageList, &cx, &cy);

// Draw the images of the image list on the DC.
for (dx = 0, i = 0; i < nCount; i++)
{
   m_myImageList.DrawIndirect(&dc, i, CPoint(dx, 0),
                              CSize(cx, cy), CPoint(0, 0));
   dx += cx;
}

CImageList::EndDrag

Appelez cette fonction pour mettre fin à une opération de glissement.

static void PASCAL EndDrag();

Notes

Pour commencer une opération de glisser, utilisez la BeginDrag fonction membre.

Exemple

void CImageListDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
   // Terminate the drag image (usually called from WM_LBUTTONUP).
   m_myImageList.DragLeave(this);
   m_myImageList.EndDrag();

   CDialog::OnLButtonUp(nFlags, point);
}

CImageList::ExtractIcon

Appelez cette fonction pour créer une icône basée sur une image et son masque associé dans une liste d’images.

HICON ExtractIcon(int nImage);

Paramètres

nImage
Index de base zéro de l’image.

Valeur de retour

Handle de l’icône en cas de réussite ; sinon NULL.

Notes

Cette méthode s’appuie sur le comportement de la ImageList_ExtractIcon macro pour créer l’icône. Pour plus d’informations sur la création et le nettoyage d’icônes, reportez-vous à la ImageList_ExtractIcon macro.

Exemple

int i, dx, cx, cy, nCount = m_myImageList.GetImageCount();
HICON hIcon;

::ImageList_GetIconSize(m_myImageList, &cx, &cy);

// Draw the images of the image list on the DC.
for (dx = 0, i = 0; i < nCount; i++)
{
   hIcon = m_myImageList.ExtractIcon(i);

   dc.DrawIcon(dx, 0, hIcon);
   dx += cx;
}

CImageList::FromHandle

Retourne un pointeur vers un CImageList objet lorsqu’un handle est donné à une liste d’images.

static CImageList* PASCAL FromHandle(HIMAGELIST hImageList);

Paramètres

hImageList
Spécifie la liste d’images.

Valeur de retour

Pointeur vers un CImageList objet en cas de réussite ; sinon NULL.

Notes

Si un CImageList élément n’est pas déjà attaché au handle, un objet temporaire CImageList est créé et attaché. Cet objet temporaire CImageList est valide uniquement jusqu’à la prochaine fois que l’application a un temps d’inactivité dans sa boucle d’événements, auquel cas tous les objets temporaires sont supprimés.

Exemple

CImageList *ConvertHandle(HIMAGELIST hmyImageList)
{
   // Convert the HIMAGELIST to a CImageList*.
   ASSERT(hmyImageList != NULL);
   CImageList *pmyImageList = CImageList::FromHandle(hmyImageList);
   ASSERT(pmyImageList != NULL);

   return pmyImageList;
}

CImageList::FromHandlePermanent

Retourne un pointeur vers un CImageList objet lorsqu’un handle est donné à une liste d’images.

static CImageList* PASCAL FromHandlePermanent(HIMAGELIST hImageList);

Paramètres

hImageList
Spécifie la liste d’images.

Valeur de retour

Pointeur vers un CImageList objet en cas de réussite ; sinon NULL.

Notes

Si un CImageList objet n’est pas attaché au handle, NULL est retourné.

Exemple

CImageList *ConvertHandlePermanent(HIMAGELIST hmyImageList)
{
   // Convert the HIMAGELIST to a CImageList*.
   ASSERT(hmyImageList != NULL);
   CImageList *pmyImageList = CImageList::FromHandlePermanent(hmyImageList);
   ASSERT(pmyImageList != NULL);

   return pmyImageList;
}

CImageList::GetBkColor

Appelez cette fonction pour récupérer la couleur d’arrière-plan actuelle d’une liste d’images.

COLORREF GetBkColor() const;

Valeur de retour

Valeur de couleur RVB de la couleur d’arrière-plan de l’objet CImageList .

Exemple

Consultez l’exemple pour CImageList::SetBkColor.

CImageList::GetDragImage

Obtient la liste d’images temporaires utilisée pour le glissement.

static CImageList* PASCAL GetDragImage(
    LPPOINT lpPoint,
    LPPOINT lpPointHotSpot);

Paramètres

lpPoint
Adresse d’une POINT structure qui reçoit la position de glisser actuelle.

lpPointHotSpot
Adresse d’une POINT structure qui reçoit le décalage de l’image glisser par rapport à la position de glisser.

Valeur de retour

En cas de réussite, un pointeur vers la liste d’images temporaires utilisée pour le glissement ; sinon, NULL.

CImageList::GetImageCount

Appelez cette fonction pour récupérer le nombre d’images dans une liste d’images.

int GetImageCount() const;

Valeur de retour

Nombre d’images.

Exemple

Consultez l’exemple pour CImageList::ExtractIcon.

CImageList::GetImageInfo

Appelez cette fonction pour récupérer des informations sur une image.

BOOL GetImageInfo(
    int nImage,
    IMAGEINFO* pImageInfo) const;

Paramètres

nImage
Index de base zéro de l’image.

pImageInfo
Pointeur vers une IMAGEINFO structure qui reçoit des informations sur l’image. Les informations contenues dans cette structure peuvent être utilisées pour manipuler directement les bitmaps de l’image.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

La IMAGEINFO structure contient des informations sur une image dans une liste d’images.

CImageList::GetSafeHandle

Appelez cette fonction pour récupérer le membre de m_hImageList données.

HIMAGELIST GetSafeHandle() const;

Valeur de retour

Handle de la liste d’images jointe ; sinon NULL , si aucun objet n’est attaché.

Exemple

// Get the safe handle to the image list.
HIMAGELIST hImageList = m_myImageList.GetSafeHandle();

CImageList::m_hImageList

Handle de la liste d’images jointe à cet objet.

HIMAGELIST m_hImageList;

Notes

Le m_hImageList membre de données est une variable publique de type HIMAGELIST.

Exemple

// Get the safe handle to the image list.
HIMAGELIST hImageList = m_myImageList.m_hImageList;

CImageList::operator HIMAGELIST

Utilisez cet opérateur pour obtenir le handle attaché de l’objet CImageList .

operator HIMAGELIST() const;

Valeur de retour

En cas de réussite, un handle vers la liste d’images représentée par l’objet CImageList ; sinon NULL.

Notes

Cet opérateur est un opérateur de cast, qui prend en charge l’utilisation directe d’un HIMAGELIST objet.

Exemple

// Get the safe handle to the image list.
HIMAGELIST hImageList = m_myImageList;

CImageList::Read

Appelez cette fonction pour lire une liste d’images à partir d’une archive.

BOOL Read(CArchive* pArchive);

Paramètres

pArchive
Pointeur vers un CArchive objet à partir duquel la liste d’images doit être lue.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Exemple

// Open the archive to load the image list from.
CFile myFile(_T("myfile.data"), CFile::modeRead);
CArchive ar(&myFile, CArchive::load);
CImageList myImgList;

// Load the image list from the archive.
myImgList.Read(&ar);

CImageList::Remove

Appelez cette fonction pour supprimer une image d’un objet de liste d’images.

BOOL Remove(int nImage);

Paramètres

nImage
Index de base zéro de l’image à supprimer.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Tous les éléments suivants nImage se déplacent maintenant vers le bas d’une position. Par exemple, si une liste d’images contient deux éléments, la suppression du premier élément entraîne la première position de l’élément restant. nImage=0 pour l’élément à la première position.

Exemple

// Remove every other image from the image list.
for (int i = 0; i < m_myImageList.GetImageCount(); i++)
{
   m_myImageList.Remove(i);
}

CImageList::Replace

Appelez cette fonction pour remplacer une image dans une liste d’images par une nouvelle image.

BOOL Replace(
    int nImage,
    CBitmap* pbmImage,
    CBitmap* pbmMask);

int Replace(
    int nImage,
    HICON hIcon);

Paramètres

nImage
Index de base zéro de l’image à remplacer.

pbmImage
Pointeur vers la bitmap contenant l’image.

pbmMask
Pointeur vers la bitmap contenant le masque. Si aucun masque n’est utilisé avec la liste d’images, ce paramètre est ignoré.

hIcon
Handle vers l’icône qui contient la bitmap et le masque de la nouvelle image.

Valeur de retour

La version retournée BOOL retourne une valeur différente de zéro si elle réussit ; sinon, 0.

La version retournée int retourne l’index de base zéro de l’image si elle réussit ; sinon , 1.

Notes

Appelez cette fonction membre après avoir appelé SetImageCount pour affecter les nouvelles images valides aux numéros d’index de l’image d’espace réservé.

Exemple

Consultez l’exemple pour CImageList::SetImageCount.

CImageList::SetBkColor

Appelez cette fonction pour définir la couleur d’arrière-plan d’une liste d’images.

COLORREF SetBkColor(COLORREF cr);

Paramètres

cr
Couleur d’arrière-plan à définir. Elle peut être CLR_NONE. Dans ce cas, les images sont dessinées de manière transparente à l’aide du masque.

Valeur de retour

Couleur d’arrière-plan précédente en cas de réussite ; sinon CLR_NONE.

Exemple

// Set the background color to white.
m_myImageList.SetBkColor(RGB(255, 255, 255));
ASSERT(m_myImageList.GetBkColor() == RGB(255, 255, 255));

CImageList::SetDragCursorImage

Crée une image glisser en combinant l’image donnée (généralement une image de curseur de souris) avec l’image de glisser actuelle.

BOOL SetDragCursorImage(
    int nDrag,
    CPoint ptHotSpot);

Paramètres

nDrag
Index de la nouvelle image à combiner avec l’image glisser.

ptHotSpot
Position du point chaud dans la nouvelle image.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Étant donné que les fonctions de glissement utilisent la nouvelle image pendant une opération de glisser, vous devez utiliser la fonction Windows ShowCursor pour masquer le curseur de la souris réel après l’appel CImageList::SetDragCursorImage. Sinon, le système peut sembler être composé de deux curseurs de souris pour la durée de l'opération Glisser-déplacer.

CImageList::SetImageCount

Appelez cette fonction membre pour réinitialiser le nombre d’images dans un CImageList objet.

BOOL SetImageCount(UINT uNewCount);

Paramètres

uNewCount
Valeur spécifiant le nouveau nombre total d’images dans la liste d’images.

Valeur de retour

Valeur différente de zéro en cas de réussite ; sinon, zéro.

Notes

Si vous appelez cette fonction membre pour augmenter le nombre d’images dans la liste d’images, appelez Replace chaque image supplémentaire pour affecter les nouveaux index aux images valides. Si vous ne parvenez pas à affecter les index aux images valides, les opérations de dessin qui créent les nouvelles images sont imprévisibles.

Si vous diminuez la taille d’une liste d’images à l’aide de cette fonction, les images tronquées sont libérées.

Exemple

// Set the image count of the image list to be 10 with
// all images being the system question mark icon.
m_myImageList.SetImageCount(10);
HICON hIcon = AfxGetApp()->LoadStandardIcon(IDI_QUESTION);

for (int i = 0; i < 10; i++)
{
   m_myImageList.Replace(i, hIcon);
}

CImageList::SetOverlayImage

Appelez cette fonction pour ajouter l’index de base zéro d’une image à la liste des images à utiliser comme masques de superposition.

BOOL SetOverlayImage(
    int nImage,
    int nOverlay);

Paramètres

nImage
Index de base zéro de l’image à utiliser comme masque de superposition.

nOverlay
Index de base unique du masque de superposition.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Jusqu’à quatre index peuvent être ajoutés à la liste.

Un masque de superposition est une image dessinée de manière transparente sur une autre image. Dessinez un masque de superposition sur une image à l’aide de la CImageList::Draw fonction membre avec l’index de base unique du masque de superposition spécifié à l’aide de la INDEXTOOVERLAYMASK macro.

Exemple

// Add a new image to the image list.
int nIndex = m_myImageList.Add(AfxGetApp()->LoadStandardIcon(IDI_QUESTION));

if (nIndex != -1)
{
   // Make the new image an overlay image.
   m_myImageList.SetOverlayImage(nIndex, 1);

   // Draw the first image in the image list with an overlay image.
   m_myImageList.Draw(&dc, 0, CPoint(0, 0), INDEXTOOVERLAYMASK(1));
}

CImageList::Write

Appelez cette fonction pour écrire un objet de liste d’images dans une archive.

BOOL Write(CArchive* pArchive);

Paramètres

pArchive
Pointeur vers un CArchive objet dans lequel la liste d’images doit être stockée.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Exemple

// Open the archive to store the image list in.
CFile myFile(_T("myfile.data"), CFile::modeCreate | CFile::modeWrite);
CArchive ar(&myFile, CArchive::store);

// Store the image list in the archive.
m_myImageList.Write(&ar);

Voir aussi

CObject Classe
Graphique hiérarchique
CListCtrl Classe
CTabCtrl Classe