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_hImageList Ré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
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 NULL
le 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_SELECTED ILD_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_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 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, SRCCOPY
copie 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