Delen via


CImageList-klasse

Biedt de functionaliteit van het algemene besturingselement voor de windows-installatiekopieënlijst.

Syntaxis

class CImageList : public CObject

Leden

Openbare constructors

Naam Beschrijving
CImageList::CImageList Maakt een CImageList-object.

Openbare methoden

Naam Beschrijving
CImageList::Add Hiermee voegt u een afbeelding of afbeeldingen toe aan een lijst met afbeeldingen.
CImageList::Attach Hiermee voegt u een lijst met afbeeldingen toe aan een CImageList object.
CImageList::BeginDrag Begint met het slepen van een afbeelding.
CImageList::Copy Hiermee kopieert u een afbeelding in een CImageList object.
CImageList::Create Initialiseert een lijst met afbeeldingen en koppelt deze aan een CImageList object.
CImageList::DeleteImageList Hiermee verwijdert u een lijst met afbeeldingen.
CImageList::DeleteTempMap Aangeroepen door de CWinApp handler voor inactiviteit om een tijdelijk CImageList object te verwijderen dat is gemaakt door FromHandle.
CImageList::Detach Een afbeeldingslijstobject loskoppelen van een CImageList object en retourneert een ingang naar een lijst met afbeeldingen.
CImageList::DragEnter Hiermee worden updates vergrendeld tijdens een sleepbewerking en wordt de afbeelding voor slepen op een opgegeven positie weergegeven.
CImageList::DragLeave Ontgrendelt het venster en verbergt de sleepafbeelding zodat het venster kan worden bijgewerkt.
CImageList::DragMove Hiermee verplaatst u de afbeelding die wordt gesleept tijdens een slepen-en-neerzetten-bewerking.
CImageList::DragShowNolock Hiermee wordt de sleepafbeelding weergegeven of verborgen tijdens een sleepbewerking, zonder het venster te vergrendelen.
CImageList::Draw Hiermee tekent u de afbeelding die wordt gesleept tijdens een slepen-en-neerzetten-bewerking.
CImageList::DrawEx Hiermee tekent u een item in de lijst met afbeeldingen in de opgegeven apparaatcontext. De functie maakt gebruik van de opgegeven tekenstijl en combineert de afbeelding met de opgegeven kleur.
CImageList::DrawIndirect Hiermee tekent u een afbeelding uit een lijst met afbeeldingen.
CImageList::EndDrag Hiermee beëindigt u een sleepbewerking.
CImageList::ExtractIcon Hiermee maakt u een pictogram op basis van een afbeelding en masker in een lijst met afbeeldingen.
CImageList::FromHandle Retourneert een aanwijzer naar een CImageList object wanneer een ingang aan een afbeeldingslijst wordt gegeven. Als een CImageList object niet aan de ingang is gekoppeld, wordt er een tijdelijk CImageList object gemaakt en gekoppeld.
CImageList::FromHandlePermanent Retourneert een aanwijzer naar een CImageList object wanneer een ingang aan een afbeeldingslijst wordt gegeven. Als een CImageList object niet aan de ingang is gekoppeld, wordt NULL geretourneerd.
CImageList::GetBkColor Hiermee haalt u de huidige achtergrondkleur voor een lijst met afbeeldingen op.
CImageList::GetDragImage Hiermee haalt u de tijdelijke lijst met afbeeldingen op die wordt gebruikt voor slepen.
CImageList::GetImageCount Hiermee haalt u het aantal afbeeldingen in een lijst met afbeeldingen op.
CImageList::GetImageInfo Hiermee haalt u informatie over een afbeelding op.
CImageList::GetSafeHandle m_hImageListWordt opgehaald.
CImageList::Read Hiermee leest u een lijst met afbeeldingen uit een archief.
CImageList::Remove Hiermee verwijdert u een afbeelding uit een lijst met afbeeldingen.
CImageList::Replace Hiermee vervangt u een afbeelding in een lijst met afbeeldingen door een nieuwe afbeelding.
CImageList::SetBkColor Hiermee stelt u de achtergrondkleur voor een lijst met afbeeldingen in.
CImageList::SetDragCursorImage Hiermee maakt u een nieuwe afbeelding voor slepen.
CImageList::SetImageCount Hiermee stelt u het aantal afbeeldingen in een lijst met afbeeldingen opnieuw in.
CImageList::SetOverlayImage Hiermee voegt u de op nul gebaseerde index van een afbeelding toe aan de lijst met afbeeldingen die moeten worden gebruikt als overlaymaskers.
CImageList::Write Hiermee schrijft u een lijst met afbeeldingen naar een archief.

Openbare operators

Naam Beschrijving
CImageList::operator HIMAGELIST Retourneert de HIMAGELIST bijlage aan de CImageList.

Leden van openbare gegevens

Naam Beschrijving
CImageList::m_hImageList Een ingang met de lijst met afbeeldingen die aan dit object is gekoppeld.

Opmerkingen

Een 'lijst met afbeeldingen' is een verzameling afbeeldingen van dezelfde grootte, die elk kunnen worden aangeduid door de index op basis van nul. Afbeeldingslijsten worden gebruikt om grote sets pictogrammen of bitmaps efficiënt te beheren. Alle afbeeldingen in een lijst met afbeeldingen bevinden zich in één, brede bitmap in de indeling van het schermapparaat. Een lijst met afbeeldingen kan ook een monochrome bitmap bevatten die maskers bevat die worden gebruikt om afbeeldingen transparant te tekenen (pictogramstijl). De Microsoft Win32 Application Programming Interface (API) biedt functies voor afbeeldingenlijst waarmee u afbeeldingen kunt tekenen, afbeeldingen kunt maken en vernietigen, afbeeldingen kunt toevoegen en verwijderen, afbeeldingen kunt vervangen, afbeeldingen kunt samenvoegen en afbeeldingen kunt slepen.

Dit besturingselement (en daarom de CImageList klasse) is alleen beschikbaar voor programma's die worden uitgevoerd onder Windows 95/98 en Windows NT versie 3.51 en hoger.

Zie CImageList en voor meer informatie over het gebruikCImageList.

Overnamehiërarchie

CObject

CImageList

Behoeften

koptekst:afxcmn.h

CImageList::Add

Roep deze functie aan om een of meer afbeeldingen of een pictogram toe te voegen aan een lijst met afbeeldingen.

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

int Add(
    CBitmap* pbmImage,
    COLORREF crMask);

int Add(HICON hIcon);

Parameterwaarden

pbmImage
Wijs de bitmap aan die de afbeelding of afbeeldingen bevat. Het aantal afbeeldingen wordt afgeleid van de breedte van de bitmap.

pbmMask
Aanwijzer naar de bitmap met het masker. Als er geen masker wordt gebruikt in de lijst met afbeeldingen, wordt deze parameter genegeerd.

crMask
Kleur die wordt gebruikt om het masker te genereren. Elke pixel van deze kleur in de opgegeven bitmap wordt gewijzigd in zwart en de bijbehorende bit in het masker is ingesteld op één.

hIcon
Greep van het pictogram met de bitmap en het masker voor de nieuwe afbeelding.

Retourwaarde

Op nul gebaseerde index van de eerste nieuwe installatiekopieën, indien geslaagd; anders - 1.

Opmerkingen

U bent verantwoordelijk voor het vrijgeven van de pictogramgreep wanneer u er klaar mee bent.

Voorbeeld

// 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

Roep deze functie aan om een lijst met afbeeldingen aan een CImageList object toe te voegen.

BOOL Attach(HIMAGELIST hImageList);

Parameterwaarden

hImageList
Een ingang naar een afbeeldingslijstobject.

Retourwaarde

Niet-nul als de bijlage is geslaagd; anders 0.

Voorbeeld

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

Roep deze functie aan om een afbeelding te slepen.

BOOL BeginDrag(
    int nImage,
    CPoint ptHotSpot);

Parameterwaarden

nImage
Op nul gebaseerde index van de afbeelding die u wilt slepen.

ptHotSpot
Coördinaten van de beginpositie voor slepen (meestal de cursorpositie). De coördinaten zijn relatief ten opzichte van de linkerbovenhoek van de afbeelding.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

Met deze functie maakt u een tijdelijke lijst met afbeeldingen die wordt gebruikt voor slepen. De afbeelding combineert de opgegeven afbeelding en het masker ervan met de huidige cursor. Als reactie op volgende WM_MOUSEMOVE berichten kunt u de afbeelding voor slepen verplaatsen met behulp van de DragMove lidfunctie. Als u de sleepbewerking wilt beëindigen, kunt u de EndDrag lidfunctie gebruiken.

Voorbeeld

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

Maakt een CImageList-object.

CImageList();

CImageList::Copy

Deze lidfunctie implementeert het gedrag van de Win32-functie ImageList_Copy, zoals beschreven in de Windows SDK.

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

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

Parameterwaarden

iDst
De op nul gebaseerde index van de installatiekopie die moet worden gebruikt als de bestemming van de kopieerbewerking.

iSrc
De op nul gebaseerde index van de installatiekopie die moet worden gebruikt als de bron van de kopieerbewerking.

uFlags
De bitvlagwaarde waarmee het type kopieerbewerking wordt opgegeven dat moet worden gemaakt. Deze parameter kan een van de volgende waarden zijn:

Waarde Betekenis
ILCF_MOVE De broninstallatiekopieën worden gekopieerd naar de index van de doelinstallatiekopieën. Deze bewerking resulteert in meerdere exemplaren van een bepaalde installatiekopieën. ILCF_MOVE is de standaardwaarde.
ILCF_SWAP De bron- en doelafbeeldingen wisselen posities in de lijst met afbeeldingen uit.

pSrc
Een aanwijzer naar een CImageList object dat het doel is van de kopieerbewerking.

Retourwaarde

Niet-nul indien geslaagd; anders nul.

Voorbeeld

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

Initialiseert een lijst met afbeeldingen en koppelt deze aan een CImageList object.

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);

Parameterwaarden

cx
Afmetingen van elke afbeelding, in pixels.

cy
Afmetingen van elke afbeelding, in pixels.

nFlags
Hiermee geeft u het type lijst met installatiekopieën te maken. Deze parameter kan een combinatie van de volgende waarden zijn, maar kan slechts één van de ILC_COLOR waarden bevatten.

Waarde Betekenis
ILC_COLOR Gebruik het standaardgedrag als geen van de andere ILC_COLOR* vlaggen is opgegeven. Normaal gesproken is de standaardwaarde ILC_COLOR4; maar voor oudere beeldschermstuurprogramma's is de standaardwaarde ILC_COLORDDB.
ILC_COLOR4 Gebruik een 4-bits (16 kleuren) apparaatonafhankelijke bitmapsectie (DIB) als bitmap voor de lijst met afbeeldingen.
ILC_COLOR8 Gebruik een 8-bits DIB-sectie. De kleuren die worden gebruikt voor de kleurentabel zijn dezelfde kleuren als het halftoonpalet.
ILC_COLOR16 Gebruik een 16-bits dib-sectie (32/64k-kleur).
ILC_COLOR24 Gebruik een 24-bits DIB-sectie.
ILC_COLOR32 Gebruik een 32-bits DIB-sectie.
ILC_COLORDDB Gebruik een apparaatafhankelijke bitmap.
ILC_MASK Maakt gebruik van een masker. De lijst met afbeeldingen bevat twee bitmaps, waarvan één een monochrome bitmap is die als masker wordt gebruikt. Als deze waarde niet is opgenomen, bevat de lijst met afbeeldingen slechts één bitmap. Zie Afbeeldingsafbeeldingen uit een lijst met afbeeldingen voor meer informatie over gemaskeerde afbeeldingen.

nInitial
Het aantal afbeeldingen dat de lijst met afbeeldingen in eerste instantie bevat.

nGrow
Aantal afbeeldingen waarmee de lijst met afbeeldingen kan toenemen wanneer het systeem het formaat van de lijst moet wijzigen om ruimte te maken voor nieuwe afbeeldingen. Deze parameter vertegenwoordigt het aantal nieuwe installatiekopieën dat de lijst met aangepaste afbeeldingen kan bevatten.

nBitmapID
Resource-id's van de bitmap die aan de lijst met afbeeldingen moeten worden gekoppeld.

crMask
Kleur die wordt gebruikt om een masker te genereren. Elke pixel van deze kleur in de opgegeven bitmap wordt gewijzigd in zwart en de bijbehorende bit in het masker is ingesteld op één.

lpszBitmapID
Een tekenreeks met de resource-id's van de afbeeldingen.

imagelist1
Een verwijzing naar een CImageList-object.

nImage1
Index van de eerste bestaande installatiekopieën.

imagelist2
Een verwijzing naar een CImageList-object.

nImage2
Index van de tweede bestaande installatiekopieën.

dx
Verschuiving van de x-as van de tweede afbeelding in relatie tot de eerste afbeelding, in pixels.

dy
Verschuiving van de y-as van de tweede afbeelding in relatie tot de eerste afbeelding, in pixels.

pImageList
Een aanwijzer naar een CImageList object.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

U maakt een CImageList in twee stappen. Roep eerst de constructor aan en roep Createvervolgens aan, waarmee de lijst met installatiekopieën wordt gemaakt en aan het CImageList object wordt gekoppeld.

Voorbeeld

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

CImageList::DeleteImageList

Roep deze functie aan om een lijst met afbeeldingen te verwijderen.

BOOL DeleteImageList();

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Voorbeeld

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

CImageList::DeleteTempMap

Automatisch aangeroepen door de CWinApp handler voor inactiviteit, DeleteTempMap verwijdert tijdelijke CImageList objecten die door FromHandle zijn gemaakt, maar vernietigt geen ingangen (hImageList) die tijdelijk aan de ImageList objecten zijn gekoppeld.

static void PASCAL DeleteTempMap();

Voorbeeld

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

CImageList::Detach

Roep deze functie aan om een afbeeldingslijstobject los te koppelen van een CImageList object.

HIMAGELIST Detach();

Retourwaarde

Een ingang naar een afbeeldingslijstobject.

Opmerkingen

Deze functie retourneert een ingang naar het lijstobject met afbeeldingen.

Voorbeeld

Zie het voorbeeld voor CImageList::Attach.

CImageList::DragEnter

Tijdens een sleepbewerking vergrendelt u updates voor het venster dat is pWndLock opgegeven en geeft u de sleepafbeelding weer op de positie die is opgegeven door point.

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

Parameterwaarden

pWndLock
Aanwijzer naar het venster dat eigenaar is van de sleepafbeelding.

point
Positie waarop de sleepafbeelding moet worden weergegeven. Coördinaten zijn relatief ten opzichte van de linkerbovenhoek van het venster (niet het clientgebied).

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

De coördinaten zijn relatief ten opzichte van de linkerbovenhoek van het venster, dus u moet de breedte van vensterelementen compenseren, zoals de rand, de titelbalk en de menubalk, wanneer u de coördinaten opgeeft.

Als pWndLock dat het is NULL, tekent deze functie de afbeelding in de weergavecontext die is gekoppeld aan het bureaubladvenster en zijn coördinaten relatief ten opzichte van de linkerbovenhoek van het scherm.

Met deze functie worden alle andere updates voor het opgegeven venster vergrendeld tijdens de sleepbewerking. Als u een tekening wilt uitvoeren tijdens een sleepbewerking, zoals het markeren van het doel van een slepen-en-neerzetten-bewerking, kunt u de gesleepte afbeelding tijdelijk verbergen met behulp van de CImageList::DragLeave functie.

Voorbeeld

Zie het voorbeeld voor CImageList::BeginDrag.

CImageList::DragLeave

Ontgrendelt het venster dat is opgegeven door pWndLock en verbergt de sleepafbeelding, zodat het venster kan worden bijgewerkt.

static BOOL PASCAL DragLeave(CWnd* pWndLock);

Parameterwaarden

pWndLock
Aanwijzer naar het venster dat eigenaar is van de sleepafbeelding.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Voorbeeld

Zie het voorbeeld voor CImageList::EndDrag.

CImageList::DragMove

Roep deze functie aan om de afbeelding te verplaatsen die wordt gesleept tijdens een slepen-en-neerzetten-bewerking.

static BOOL PASCAL DragMove(CPoint pt);

Parameterwaarden

pt
Nieuwe sleeppositie.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

Deze functie wordt meestal aangeroepen als reactie op een WM_MOUSEMOVE bericht. Gebruik de BeginDrag lidfunctie om een sleepbewerking te starten.

Voorbeeld

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

   CDialog::OnMouseMove(nFlags, point);
}

CImageList::DragShowNolock

Hiermee wordt de sleepafbeelding weergegeven of verborgen tijdens een sleepbewerking, zonder het venster te vergrendelen.

static BOOL PASCAL DragShowNolock(BOOL bShow);

Parameterwaarden

bShow
Hiermee geeft u op of de sleepafbeelding moet worden weergegeven.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

De CImageList::DragEnter functie vergrendelt alle updates van het venster tijdens een sleepbewerking. Met deze functie wordt het venster echter niet vergrendeld.

CImageList::Draw

Roep deze functie aan om de afbeelding te tekenen die wordt gesleept tijdens een slepen-en-neerzetten-bewerking.

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

Parameterwaarden

pDC
Aanwijzer naar de context van het doelapparaat.

nImage
Op nul gebaseerde index van de afbeelding die moet worden getekend.

pt
Locatie waar moet worden getekend binnen de opgegeven apparaatcontext.

nStyle
Vlag die de tekenstijl opgeeft. Dit kan een of meer van deze waarden zijn:

Waarde Betekenis
ILD_BLEND25, ILD_FOCUS Hiermee tekent u de afbeelding, waarbij 25 procent wordt gecombineerd met de kleur van de systeemmarkering. Deze waarde heeft geen effect als de lijst met afbeeldingen geen masker bevat.
ILD_BLEND50, , ILD_SELECTEDILD_BLEND Hiermee tekent u de afbeelding en mengt u 50 procent met de kleur van de systeemmarkering. Deze waarde heeft geen effect als de lijst met afbeeldingen geen masker bevat.
ILD_MASK Hiermee tekent u het masker.
ILD_NORMAL Hiermee tekent u de afbeelding met behulp van de achtergrondkleur voor de lijst met afbeeldingen. Als de achtergrondkleur de CLR_NONE waarde is, wordt de afbeelding transparant getekend met behulp van het masker.
ILD_TRANSPARENT Hiermee tekent u de afbeelding transparant met behulp van het masker, ongeacht de achtergrondkleur.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Voorbeeld

Zie het voorbeeld voor CImageList::SetOverlayImage.

CImageList::DrawEx

Hiermee tekent u een item in de lijst met afbeeldingen in de opgegeven apparaatcontext.

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

Parameterwaarden

pDC
Aanwijzer naar de context van het doelapparaat.

nImage
Op nul gebaseerde index van de afbeelding die moet worden getekend.

pt
Locatie waar moet worden getekend binnen de opgegeven apparaatcontext.

sz
De grootte van het gedeelte van de afbeelding dat moet worden getekend ten opzichte van de linkerbovenhoek van de afbeelding. Zie dx en dy in ImageList_DrawEx de Windows SDK.

clrBk
Achtergrondkleur van de afbeelding. Zie rgbBk in ImageList_DrawEx de Windows SDK.

clrFg
Voorgrondkleur van de afbeelding. Zie rgbFg in ImageList_DrawEx de Windows SDK.

nStyle
Vlag die de tekenstijl opgeeft. Zie fStyle in ImageList_DrawEx de Windows SDK.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

De functie maakt gebruik van de opgegeven tekenstijl en combineert de afbeelding met de opgegeven kleur.

Voorbeeld

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

CImageList::DrawIndirect

Roep deze lidfunctie aan om een afbeelding te tekenen uit een lijst met afbeeldingen.

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);

Parameterwaarden

pimldp
Een aanwijzer naar een IMAGELISTDRAWPARAMS structuur die informatie over de tekenbewerking bevat.

pDC
Een aanwijzer naar de context van het doelapparaat. U moet dit CDC object verwijderen wanneer u er klaar mee bent.

nImage
De op nul gebaseerde index van de afbeelding die moet worden getekend.

pt
Een POINT structuur met de x- en y-coördinaten waar de afbeelding wordt getekend.

sz
Een SIZE structuur die de grootte aangeeft van de afbeelding die moet worden getekend.

ptOrigin
Een POINT structuur met de x- en y-coördinaten die de linkerbovenhoek van de tekenbewerking opgeven met betrekking tot de afbeelding zelf. Pixels van de afbeelding links van de x-coördinaat en boven de y-coördinaat worden niet getekend.

fStyle
Vlag die de tekenstijl opgeeft en eventueel de overlayafbeelding. Zie de sectie Opmerkingen voor informatie over de overlayafbeelding. De standaard implementatie van MFC, ILD_NORMALtekent de afbeelding met behulp van de achtergrondkleur voor de lijst met afbeeldingen. Als de achtergrondkleur de CLR_NONE waarde is, wordt de afbeelding transparant getekend met behulp van een masker.

Andere mogelijke stijlen worden beschreven onder het fStyle lid van de IMAGELISTDRAWPARAMS structuur.

dwRop
Waarde die een rasterbewerkingscode opgeeft. Deze codes definiëren hoe de kleurgegevens voor de bronrechthoek worden gecombineerd met de kleurgegevens voor de doelrechthoek om de uiteindelijke kleur te bereiken. De standaard implementatie van MFC, SRCCOPYkopieert de bronrechthoek rechtstreeks naar de doelrechthoek. Deze parameter wordt genegeerd als de fStyle parameter de ILD_ROP vlag niet bevat.

Andere mogelijke waarden worden beschreven onder het dwRop lid van de IMAGELISTDRAWPARAMS structuur.

rgbBack
De achtergrondkleur van de afbeelding is standaard CLR_DEFAULT. Deze parameter kan een door de toepassing gedefinieerde RGB-waarde of een van de volgende waarden zijn:

Waarde Betekenis
CLR_DEFAULT Standaardachtergrondkleur. De afbeelding wordt getekend met behulp van de achtergrondkleur van de afbeeldingslijst.
CLR_NONE Geen achtergrondkleur. De afbeelding wordt transparant getekend.

rgbFore
Standaard de voorgrondkleur van de afbeelding CLR_DEFAULT. Deze parameter kan een door de toepassing gedefinieerde RGB-waarde of een van de volgende waarden zijn:

Waarde Betekenis
CLR_DEFAULT Standaardkleur voorgrond. De afbeelding wordt getekend met behulp van de systeemmarkeringskleur als de voorgrondkleur.
CLR_NONE Geen mengkleur. De afbeelding wordt gecombineerd met de kleur van de context van het doelapparaat.

Deze parameter wordt alleen gebruikt als fStyle deze de ILD_BLEND25 of ILD_BLEND50 vlag bevat.

fState
Vlag die de tekenstatus opgeeft. Dit lid kan een of meer vlaggen voor de status van de installatiekopieënlijst bevatten.

Frame
Beïnvloedt het gedrag van verzadigings- en alfamixeffecten.

Wanneer dit lid wordt ILS_SATURATEgebruikt, bevat dit lid de waarde die wordt toegevoegd aan elk kleuronderdeel van de RGB-triplet voor elke pixel in het pictogram.

Wanneer dit lid wordt gebruikt, ILS_APLHAbevat dit lid de waarde voor het alfakanaal. Deze waarde kan van 0 tot 255 zijn, waarbij 0 volledig transparant is en 255 volledig ondoorzichtig is.

crEffect
Een COLORREF waarde die wordt gebruikt voor gloed- en schaduweffecten.

Retourwaarde

TRUE als de afbeelding is getekend; anders FALSE.

Opmerkingen

Gebruik de eerste versie als u de Win32-structuur zelf wilt vullen. Gebruik de tweede versie als u wilt profiteren van een of meer van de standaardargumenten van MFC of voorkomen dat u de structuur beheert.

Een overlayafbeelding is een afbeelding die boven op de primaire afbeelding wordt getekend, die is opgegeven in deze lidfunctie door de nImage parameter. Teken een overlaymasker met behulp van de Draw lidfunctie met de op één gebaseerde index van het overlaymasker dat is opgegeven met behulp van de INDEXTOOVERLAYMASK macro.

Voorbeeld

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

Roep deze functie aan om een sleepbewerking te beëindigen.

static void PASCAL EndDrag();

Opmerkingen

Gebruik de BeginDrag lidfunctie om een sleepbewerking te starten.

Voorbeeld

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

Roep deze functie aan om een pictogram te maken op basis van een afbeelding en het bijbehorende masker in een lijst met afbeeldingen.

HICON ExtractIcon(int nImage);

Parameterwaarden

nImage
Op nul gebaseerde index van de installatiekopieën.

Retourwaarde

Greep van het pictogram indien geslaagd; anders NULL.

Opmerkingen

Deze methode is afhankelijk van het gedrag van de ImageList_ExtractIcon macro om het pictogram te maken. Raadpleeg de ImageList_ExtractIcon macro voor meer informatie over het maken en opschonen van pictogrammen.

Voorbeeld

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

Retourneert een aanwijzer naar een CImageList object wanneer een ingang aan een afbeeldingslijst wordt gegeven.

static CImageList* PASCAL FromHandle(HIMAGELIST hImageList);

Parameterwaarden

hImageList
Hiermee geeft u de lijst met afbeeldingen op.

Retourwaarde

Een aanwijzer naar een CImageList object als dit lukt; anders NULL.

Opmerkingen

Als er CImageList nog geen aan de ingang is gekoppeld, wordt er een tijdelijk CImageList object gemaakt en gekoppeld. Dit tijdelijke CImageList object is alleen geldig tot de volgende keer dat de toepassing inactief is in de gebeurtenislus, waarna alle tijdelijke objecten worden verwijderd.

Voorbeeld

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

Retourneert een aanwijzer naar een CImageList object wanneer een ingang aan een afbeeldingslijst wordt gegeven.

static CImageList* PASCAL FromHandlePermanent(HIMAGELIST hImageList);

Parameterwaarden

hImageList
Hiermee geeft u de lijst met afbeeldingen op.

Retourwaarde

Een aanwijzer naar een CImageList object als dit lukt; anders NULL.

Opmerkingen

Als een CImageList object niet aan de ingang is gekoppeld, NULL wordt deze geretourneerd.

Voorbeeld

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

Roep deze functie aan om de huidige achtergrondkleur voor een lijst met afbeeldingen op te halen.

COLORREF GetBkColor() const;

Retourwaarde

De RGB-kleurwaarde van de achtergrondkleur van het CImageList object.

Voorbeeld

Zie het voorbeeld voor CImageList::SetBkColor.

CImageList::GetDragImage

Hiermee haalt u de tijdelijke lijst met afbeeldingen op die wordt gebruikt voor slepen.

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

Parameterwaarden

lpPoint
Adres van een POINT structuur die de huidige sleeppositie ontvangt.

lpPointHotSpot
Adres van een POINT structuur die de offset van de sleepafbeelding ontvangt ten opzichte van de sleeppositie.

Retourwaarde

Als dit lukt, wijst u een aanwijzer naar de tijdelijke lijst met afbeeldingen die wordt gebruikt voor slepen; anders, NULL.

CImageList::GetImageCount

Roep deze functie aan om het aantal afbeeldingen in een lijst met afbeeldingen op te halen.

int GetImageCount() const;

Retourwaarde

Het aantal afbeeldingen.

Voorbeeld

Zie het voorbeeld voor CImageList::ExtractIcon.

CImageList::GetImageInfo

Roep deze functie aan om informatie over een afbeelding op te halen.

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

Parameterwaarden

nImage
Op nul gebaseerde index van de installatiekopieën.

pImageInfo
Wijs een IMAGEINFO structuur aan die informatie over de afbeelding ontvangt. De informatie in deze structuur kan worden gebruikt om de bitmaps voor de afbeelding rechtstreeks te bewerken.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

De IMAGEINFO structuur bevat informatie over een afbeelding in een lijst met afbeeldingen.

CImageList::GetSafeHandle

Roep deze functie aan om het m_hImageList gegevenslid op te halen.

HIMAGELIST GetSafeHandle() const;

Retourwaarde

Een ingang naar de lijst met bijgevoegde afbeeldingen; anders NULL als er geen object is gekoppeld.

Voorbeeld

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

CImageList::m_hImageList

Een ingang van de lijst met afbeeldingen die aan dit object is gekoppeld.

HIMAGELIST m_hImageList;

Opmerkingen

Het m_hImageList gegevenslid is een openbare variabele van het type HIMAGELIST.

Voorbeeld

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

CImageList::operator HIMAGELIST

Gebruik deze operator om de bijgevoegde ingang van het CImageList object op te halen.

operator HIMAGELIST() const;

Retourwaarde

Als dit lukt, wordt een ingang naar de lijst met afbeeldingen weergegeven door het CImageList object; anders NULL.

Opmerkingen

Deze operator is een cast-operator die direct gebruik van een HIMAGELIST object ondersteunt.

Voorbeeld

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

CImageList::Read

Roep deze functie aan om een lijst met afbeeldingen uit een archief te lezen.

BOOL Read(CArchive* pArchive);

Parameterwaarden

pArchive
Een aanwijzer naar een CArchive object waaruit de lijst met afbeeldingen moet worden gelezen.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Voorbeeld

// 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

Roep deze functie aan om een afbeelding te verwijderen uit een afbeeldingslijstobject.

BOOL Remove(int nImage);

Parameterwaarden

nImage
Op nul gebaseerde index van de installatiekopieën die u wilt verwijderen.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

Alle items die volgen nImage , gaan nu één positie omlaag. Als een lijst met afbeeldingen bijvoorbeeld twee items bevat, zorgt het verwijderen van het eerste item ervoor dat het resterende item nu op de eerste positie staat. nImage=0 voor het item op de eerste positie.

Voorbeeld

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

CImageList::Replace

Roep deze functie aan om een afbeelding in een lijst met afbeeldingen te vervangen door een nieuwe afbeelding.

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

int Replace(
    int nImage,
    HICON hIcon);

Parameterwaarden

nImage
Op nul gebaseerde index van de installatiekopieën die moeten worden vervangen.

pbmImage
Een aanwijzer naar de bitmap die de afbeelding bevat.

pbmMask
Een aanwijzer naar de bitmap met het masker. Als er geen masker wordt gebruikt in de lijst met afbeeldingen, wordt deze parameter genegeerd.

hIcon
Een greep naar het pictogram met de bitmap en het masker voor de nieuwe afbeelding.

Retourwaarde

De versie die wordt geretourneerd BOOL , retourneert niet-nul als dit lukt; anders 0.

De versie retourneert int de op nul gebaseerde index van de installatiekopieën als deze is geslaagd; anders - 1.

Opmerkingen

Roep deze lidfunctie aan nadat u de nieuwe, geldige afbeeldingen hebt aangeroepen SetImageCount aan de indexnummers van de tijdelijke aanduiding voor afbeeldingen.

Voorbeeld

Zie het voorbeeld voor CImageList::SetImageCount.

CImageList::SetBkColor

Roep deze functie aan om de achtergrondkleur voor een lijst met afbeeldingen in te stellen.

COLORREF SetBkColor(COLORREF cr);

Parameterwaarden

cr
Achtergrondkleur die moet worden ingesteld. Het kan zijn CLR_NONE. In dat geval worden afbeeldingen transparant getekend met behulp van het masker.

Retourwaarde

De vorige achtergrondkleur indien geslaagd; anders CLR_NONE.

Voorbeeld

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

CImageList::SetDragCursorImage

Hiermee maakt u een nieuwe sleepafbeelding door de opgegeven afbeelding (meestal een muiscursorafbeelding) te combineren met de huidige sleepafbeelding.

BOOL SetDragCursorImage(
    int nDrag,
    CPoint ptHotSpot);

Parameterwaarden

nDrag
Index van de nieuwe afbeelding die moet worden gecombineerd met de sleepafbeelding.

ptHotSpot
Positie van de hot spot in de nieuwe afbeelding.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

Omdat de slepende functies de nieuwe afbeelding gebruiken tijdens een sleepbewerking, moet u de Windows-functie ShowCursor gebruiken om de werkelijke muiscursor te verbergen na het aanroepen CImageList::SetDragCursorImage. Anders lijkt het systeem twee muiscursors te hebben voor de duur van de sleepbewerking.

CImageList::SetImageCount

Roep deze lidfunctie aan om het aantal afbeeldingen in een CImageList object opnieuw in te stellen.

BOOL SetImageCount(UINT uNewCount);

Parameterwaarden

uNewCount
De waarde waarmee het nieuwe totale aantal afbeeldingen in de lijst met afbeeldingen wordt opgegeven.

Retourwaarde

Niet-nul indien geslaagd; anders nul.

Opmerkingen

Als u deze lidfunctie aanroept om het aantal installatiekopieën in de lijst met afbeeldingen te verhogen, roept Replace u vervolgens aan voor elke extra installatiekopieën om de nieuwe indexen toe te wijzen aan geldige afbeeldingen. Als u de indexen niet toewijst aan geldige afbeeldingen, zijn tekenbewerkingen die de nieuwe afbeeldingen maken onvoorspelbaar.

Als u de grootte van een lijst met afbeeldingen verkleint met behulp van deze functie, worden de afgekapte afbeeldingen vrijgemaakt.

Voorbeeld

// 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

Roep deze functie aan om de op nul gebaseerde index van een afbeelding toe te voegen aan de lijst met afbeeldingen die moeten worden gebruikt als overlaymaskers.

BOOL SetOverlayImage(
    int nImage,
    int nOverlay);

Parameterwaarden

nImage
Op nul gebaseerde index van de afbeelding die moet worden gebruikt als een overlaymasker.

nOverlay
Eén index van het overlaymasker.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

Maximaal vier indexen kunnen aan de lijst worden toegevoegd.

Een overlaymasker is een afbeelding die transparant over een andere afbeelding wordt getekend. Teken een overlaymasker over een afbeelding met behulp van de CImageList::Draw lidfunctie met de op één gebaseerde index van het overlaymasker dat is opgegeven met behulp van de INDEXTOOVERLAYMASK macro.

Voorbeeld

// 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

Roep deze functie aan om een afbeeldingslijstobject naar een archief te schrijven.

BOOL Write(CArchive* pArchive);

Parameterwaarden

pArchive
Een aanwijzer naar een CArchive object waarin de lijst met afbeeldingen moet worden opgeslagen.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Voorbeeld

// 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);

Zie ook

CObject klasse
Hiërarchiegrafiek
CListCtrl klasse
CTabCtrl klasse