CImageList-Klasse

Stellt die Funktionalität des allgemeinen Windows-Bildlisten-Steuerelements bereit.

Syntax

class CImageList : public CObject

Member

Öffentliche Konstruktoren

name Beschreibung
CImageList::CImageList Erstellt ein CImageList-Objekt.

Öffentliche Methoden

name Beschreibung
CImageList::Add Fügt einer Bildliste ein oder mehrere Bilder hinzu.
CImageList::Attach Angefügt eine Bildliste an ein CImageList -Objekt.
CImageList::BeginDrag Beginnt mit dem Ziehen eines Bilds.
CImageList::Copy Kopiert ein Bild innerhalb eines CImageList -Objekts.
CImageList::Create Initialisiert eine Bildliste und hängt sie an ein CImageList -Objekt an.
CImageList::DeleteImageList Löscht eine Bildliste.
CImageList::DeleteTempMap Wird vom CWinApp Leerlaufzeithandler aufgerufen, um alle temporären Objekte CImageList zu löschen, die von erstellt FromHandle wurden.
CImageList::Detach Trennt ein Bildlistenobjekt von einem CImageList -Objekt und gibt ein Handle an eine Bildliste zurück.
CImageList::DragEnter Sperrt Updates während eines Ziehvorganges und zeigt das Ziehbild an einer angegebenen Position an.
CImageList::DragLeave Entsperrt das Fenster und blendet das Ziehbild aus, damit das Fenster aktualisiert werden kann.
CImageList::DragMove Verschiebt das Bild, das während eines Drag & Drop-Vorgangs gezogen wird.
CImageList::DragShowNolock Zeigt das Ziehbild während eines Ziehvorgang an oder blendet es aus, ohne das Fenster zu sperren.
CImageList::Draw Zeichnet das Bild, das während eines Drag & Drop-Vorgangs gezogen wird.
CImageList::DrawEx Zeichnet ein Bildlistenelement im angegebenen Gerätekontext. Die Funktion verwendet den angegebenen Zeichnungsstil und kombiniert das Bild mit der angegebenen Farbe.
CImageList::DrawIndirect Zeichnet ein Bild aus einer Bildliste.
CImageList::EndDrag Beendet einen Ziehvorgang.
CImageList::ExtractIcon Erstellt ein Symbol basierend auf einem Bild und einer Maske in einer Bildliste.
CImageList::FromHandle Gibt einen Zeiger auf ein CImageList -Objekt zurück, wenn ein Handle für eine Bildliste angegeben wird. Wenn ein CImageList-Objekt nicht an das Handle angefügt ist, wird ein temporäres CImageList-Objekt erstellt und angefügt.
CImageList::FromHandlePermanent Gibt einen Zeiger auf ein CImageList -Objekt zurück, wenn ein Handle für eine Bildliste angegeben wird. Wenn ein CImageList -Objekt nicht an das Handle angefügt ist, wird NULL zurückgegeben.
CImageList::GetBkColor Ruft die aktuelle Hintergrundfarbe für eine Bildliste ab.
CImageList::GetDragImage Ruft die temporäre Bildliste ab, die zum Ziehen verwendet wird.
CImageList::GetImageCount Ruft die Anzahl der Bilder in einer Bildliste ab.
CImageList::GetImageInfo Ruft Informationen zu einem Bild ab.
CImageList::GetSafeHandle Ruft m_hImageList ab.
CImageList::Read Liest eine Bildliste aus einem Archiv.
CImageList::Remove Entfernt ein Bild aus einer Bildliste.
CImageList::Replace Ersetzt ein Bild in einer Bildliste durch ein neues Image.
CImageList::SetBkColor Legt die Hintergrundfarbe für eine Bildliste fest.
CImageList::SetDragCursorImage Erstellt ein neues Ziehbild.
CImageList::SetImageCount Setzt die Anzahl der Bilder in einer Bildliste zurück.
CImageList::SetOverlayImage Fügt der Liste der Bilder, die als Überlagerungsmasken verwendet werden sollen, den nullbasierten Index eines Bilds hinzu.
CImageList::Write Schreibt eine Bildliste in ein Archiv.

Öffentliche Operatoren

Name Beschreibung
CImageList::operator HIMAGELIST Gibt das HIMAGELIST an das angefügte CImageList zurück.

Öffentliche Datenmember

Name Beschreibung
CImageList::m_hImageList Ein Handle, das die an dieses Objekt angefügte Bildliste enthält.

Hinweise

Eine "Bildliste" ist eine Sammlung von Bildern gleicher Größe, auf die jeweils durch den nullbasierten Index verwiesen werden kann. Bildlisten werden verwendet, um große Mengen von Symbolen oder Bitmaps effizient zu verwalten. Alle Bilder in einer Bildliste sind in einer einzelnen, breiten Bitmap im Bildschirmgeräteformat enthalten. Eine Bildliste kann auch eine monocolore Bitmap enthalten, die Masken enthält, die zum transparenten Zeichnen von Bildern verwendet werden (Symbolformat). Die Microsoft Win32-API (Application Programming Interface) bietet Bildlistenfunktionen, mit denen Sie Bilder zeichnen, Bildlisten erstellen und zerstören, Bilder hinzufügen und entfernen, Bilder ersetzen, Bilder zusammenführen und Bilder ziehen können.

Dieses Steuerelement (und somit die CImageList -Klasse) ist nur für Programme verfügbar, die unter Windows 95/98 und Windows NT Version 3.51 und höher ausgeführt werden.

Weitere Informationen zur Verwendung von CImageList finden Sie unter Steuerelemente und Verwenden CImageList von .

Vererbungshierarchie

CObject

CImageList

Requirements (Anforderungen)

Header:afxcmn.h

CImageList::Add

Rufen Sie diese Funktion auf, um einer Bildliste ein oder mehrere Bilder oder ein Symbol hinzuzufügen.

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

int Add(
    CBitmap* pbmImage,
    COLORREF crMask);

int Add(HICON hIcon);

Parameter

pbmImage
Zeiger auf die Bitmap, die das Bild oder die Bilder enthält. Die Anzahl der Bilder wird von der Breite der Bitmap abgeleitet.

pbmMask
Zeiger auf die Bitmap, die die Maske enthält. Wenn keine Maske mit der Bildliste verwendet wird, wird dieser Parameter ignoriert.

crMask
Farbe, die zum Generieren der Maske verwendet wird. Jedes Pixel dieser Farbe in der angegebenen Bitmap wird in Schwarz geändert, und das entsprechende Bit in der Maske wird auf eins festgelegt.

hIcon
Handle des Symbols, das die Bitmap und Maske für das neue Bild enthält.

Rückgabewert

Nullbasierter Index des ersten neuen Images, falls erfolgreich; andernfalls – 1.

Hinweise

Sie sind dafür verantwortlich, das Symbolhandle freizugeben, wenn Sie damit fertig sind.

Beispiel

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

Rufen Sie diese Funktion auf, um eine Bildliste an ein CImageList -Objekt anzufügen.

BOOL Attach(HIMAGELIST hImageList);

Parameter

hImageList
Ein Handle für ein Bildlistenobjekt.

Rückgabewert

Ungleich 0 (null), wenn die Anlage erfolgreich war; andernfalls 0.

Beispiel

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

Rufen Sie diese Funktion auf, um mit dem Ziehen eines Bilds zu beginnen.

BOOL BeginDrag(
    int nImage,
    CPoint ptHotSpot);

Parameter

nImage
Nullbasierter Index des zu ziehenden Bilds.

ptHotSpot
Koordinaten der Anfangsposition des Ziehpunkts (in der Regel die Cursorposition). Die Koordinaten sind relativ zur oberen linken Ecke des Bilds.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Diese Funktion erstellt eine temporäre Bildliste, die zum Ziehen verwendet wird. Das Bild kombiniert das angegebene Bild und seine Maske mit dem aktuellen Cursor. Als Reaktion auf nachfolgende WM_MOUSEMOVE Nachrichten können Sie das Ziehbild mithilfe der DragMove Memberfunktion verschieben. Um den Ziehvorgang zu beenden, können Sie die EndDrag Memberfunktion verwenden.

Beispiel

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

Erstellt ein CImageList-Objekt.

CImageList();

CImageList::Copy

Diese Memberfunktion implementiert das Verhalten der Win32-Funktion, ImageList_Copy wie im Windows SDK beschrieben.

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

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

Parameter

iDst
Der nullbasierte Index des Bilds, das als Ziel des Kopiervorgangs verwendet werden soll.

iSrc
Der nullbasierte Index des Bilds, das als Quelle des Kopiervorgangs verwendet werden soll.

uFlags
Der Bitflagwert, der den Typ des zu erstellenden Kopiervorgangs angibt. Dieser Parameter kann einer der folgenden Werte sein:

Wert Bedeutung
ILCF_MOVE Das Quellimage wird in den Index des Zielimages kopiert. Dieser Vorgang führt zu mehreren Instanzen eines bestimmten Bilds. ILCF_MOVE ist die Standardeinstellung.
ILCF_SWAP Die Quell- und Zielimages tauschen Positionen innerhalb der Bildliste aus.

pSrc
Ein Zeiger auf ein CImageList -Objekt, das das Ziel des Kopiervorgangs ist.

Rückgabewert

Ungleich 0, wenn erfolgreich, andernfalls 0.

Beispiel

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

Initialisiert eine Bildliste und fügt sie an ein CImageList -Objekt an.

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

Parameter

cx
Abmessungen jedes Bilds in Pixel.

cy
Abmessungen jedes Bilds in Pixel.

nFlags
Gibt den Typ der zu erstellenden Bildliste an. Dieser Parameter kann eine Kombination der folgenden Werte sein, kann aber nur einen der ILC_COLOR -Werte enthalten.

Wert Bedeutung
ILC_COLOR Verwenden Sie das Standardverhalten, wenn keins der anderen ILC_COLOR* Flags angegeben ist. In der Regel ist der Standardwert ILC_COLOR4 . Bei älteren Anzeigetreibern ist der Standardwert jedoch ILC_COLORDDB .
ILC_COLOR4 Verwenden Sie einen 4-Bit-Abschnitt (16 Farben) für geräteunabhängige Bitmaps (DIB) als Bitmap für die Bildliste.
ILC_COLOR8 Verwenden Sie einen 8-Bit-DIB-Abschnitt. Die für die Farbtabelle verwendeten Farben sind die gleichen Farben wie die Halbtonpalette.
ILC_COLOR16 Verwenden Sie einen 16-Bit-DIB-Abschnitt (32/64 KB Farbe).
ILC_COLOR24 Verwenden Sie einen 24-Bit-DIB-Abschnitt.
ILC_COLOR32 Verwenden Sie einen 32-Bit-DIB-Abschnitt.
ILC_COLORDDB Verwenden Sie eine geräteabhängige Bitmap.
ILC_MASK Verwendet eine Maske. Die Bildliste enthält zwei Bitmaps, von denen eine eine monocolore Bitmap ist, die als Maske verwendet wird. Wenn dieser Wert nicht enthalten ist, enthält die Bildliste nur eine Bitmap. Weitere Informationen zu maskierten Bildern finden Sie unter Zeichnen von Bildern aus einer Bildliste.

nInitial
Anzahl der Bilder, die in der Bildliste anfänglich enthalten sind.

nGrow
Anzahl der Bilder, um die die Bildliste vergrößert werden kann, wenn das System die Größe der Liste ändern muss, um Platz für neue Bilder zu schaffen. Dieser Parameter stellt die Anzahl der neuen Bilder dar, die in der Liste mit der Größe der Bildgröße enthalten sein können.

nBitmapID
Ressourcen-IDs der Bitmap, die der Bildliste zugeordnet werden sollen.

crMask
Farbe, die zum Generieren einer Maske verwendet wird. Jedes Pixel dieser Farbe in der angegebenen Bitmap wird in Schwarz geändert, und das entsprechende Bit in der Maske wird auf eins festgelegt.

lpszBitmapID
Eine Zeichenfolge, die die Ressourcen-IDs der Bilder enthält.

imagelist1
Ein Verweis auf ein CImageList-Objekt.

nImage1
Index des ersten vorhandenen Images.

imagelist2
Ein Verweis auf ein CImageList-Objekt.

nImage2
Index des zweiten vorhandenen Images.

dx
Offset der x-Achse des zweiten Bilds in Beziehung zum ersten Bild in Pixel.

dy
Offset der y-Achse des zweiten Bilds in Beziehung zum ersten Bild in Pixel.

pImageList
Ein Zeiger auf ein CImageList-Objekt.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Sie erstellen CImageList eine in zwei Schritten. Rufen Sie zunächst den Konstruktor auf, und rufen Sie dann auf, wodurch die Bildliste erstellt und Create an das -Objekt angefügt CImageList wird.

Beispiel

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

CImageList::DeleteImageList

Rufen Sie diese Funktion auf, um eine Bildliste zu löschen.

BOOL DeleteImageList();

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Beispiel

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

CImageList::DeleteTempMap

Wird automatisch vom Leerlaufzeithandler aufgerufen und löscht alle temporären Objekte, die von CWinApp DeleteTempMap CImageList FromHandleerstellt wurden, zerstört jedoch keine Handles ( ), die den Objekten vorübergehend hImageList zugeordnet ImageList sind.

static void PASCAL DeleteTempMap();

Beispiel

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

CImageList::Detach

Rufen Sie diese Funktion auf, um ein Bildlistenobjekt von einem -Objekt CImageList zu trennen.

HIMAGELIST Detach();

Rückgabewert

Ein Handle für ein Bildlistenobjekt.

Hinweise

Diese Funktion gibt ein Handle an das Bildlistenobjekt zurück.

Beispiel

Weitere Informationen finden Sie im Beispiel CImageList::Attach für .

CImageList::DragEnter

Während eines Ziehvorgang sperrt Updates für das von angegebene Fenster und zeigt das Ziehbild an der von pWndLock angegebenen Position point an.

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

Parameter

pWndLock
Zeiger auf das Fenster, das das Ziehbild besitzt.

point
Position, an der das Ziehbild angezeigt werden soll. Koordinaten sind relativ zur oberen linken Ecke des Fensters (nicht zum Clientbereich).

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Die Koordinaten sind relativ zur oberen linken Ecke des Fensters, daher müssen Sie die Breite von Fensterelementen wie Rahmen, Titelleiste und Menüleiste beim Angeben der Koordinaten kompensieren.

Wenn ist, zeichnet diese Funktion das Bild im Anzeigekontext, der dem Desktopfenster zugeordnet ist, und koordinaten sind relativ zur oberen pWndLock NULL linken Ecke des Bildschirms.

Diese Funktion sperrt alle anderen Updates des angegebenen Fensters während des Ziehvorganges. If you need to do any drawing during a drag operation, such as highlighting the target of a drag-and-drop operation, you can temporarily hide the dragged image by using the CImageList::DragLeave function.

Beispiel

Sehen Sie sich das Beispiel für CImageList::BeginDrag an.

CImageList::DragLeave

Entsperrt das von angegebene Fenster pWndLock und blendet das Ziehbild aus, sodass das Fenster aktualisiert werden kann.

static BOOL PASCAL DragLeave(CWnd* pWndLock);

Parameter

pWndLock
Zeiger auf das Fenster, das das Ziehbild besitzt.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Beispiel

Sehen Sie sich das Beispiel für CImageList::EndDrag an.

CImageList::DragMove

Rufen Sie diese Funktion auf, um das Bild zu verschieben, das während eines Drag & Drop-Vorgangs gezogen wird.

static BOOL PASCAL DragMove(CPoint pt);

Parameter

pt
Neue Ziehposition.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Diese Funktion wird in der Regel als Reaktion auf eine WM_MOUSEMOVE Nachricht aufgerufen. Verwenden Sie die Memberfunktion, um einen Ziehvorgang zu BeginDrag starten.

Beispiel

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

   CDialog::OnMouseMove(nFlags, point);
}

CImageList::DragShowNolock

Zeigt das Ziehbild während eines Ziehvorgangs an oder blendet es aus, ohne das Fenster zu sperren.

static BOOL PASCAL DragShowNolock(BOOL bShow);

Parameter

bShow
Gibt an, ob das Ziehbild angezeigt werden soll.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Die CImageList::DragEnter Funktion sperrt alle Aktualisierungen des Fensters während eines Ziehvorgangs. Diese Funktion sperrt das Fenster jedoch nicht.

CImageList::Draw

Rufen Sie diese Funktion auf, um das Bild zu zeichnen, das während eines Drag & Drop-Vorgangs gezogen wird.

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

Parameter

pDC
Zeiger auf den Zielgerätekontext.

nImage
Nullbasierter Index des zu zeichnenden Bilds.

pt
Position, an der innerhalb des angegebenen Gerätekontexts gezeichnet werden soll.

nStyle
Flag, das den Zeichnungsstil angibt. Dabei kann es sich um einen oder mehrere dieser Werte handelt:

Wert Bedeutung
ILD_BLEND25, ILD_FOCUS Zeichnet das Bild, wobei 25 Prozent mit der Hervorhebungsfarbe des Systems kombiniert werden. Dieser Wert hat keine Auswirkung, wenn die Bildliste keine Maske enthält.
ILD_BLEND50, ILD_SELECTED, ILD_BLEND Zeichnet das Bild, wobei 50 Prozent mit der Hervorhebungsfarbe des Systems kombiniert werden. Dieser Wert hat keine Auswirkung, wenn die Bildliste keine Maske enthält.
ILD_MASK Zeichnet die Maske.
ILD_NORMAL Zeichnet das Bild mithilfe der Hintergrundfarbe für die Bildliste. Wenn die Hintergrundfarbe der CLR_NONE Wert ist, wird das Bild transparent mithilfe der Maske gezeichnet.
ILD_TRANSPARENT Zeichnet das Bild transparent mithilfe der Maske, unabhängig von der Hintergrundfarbe.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Beispiel

Sehen Sie sich das Beispiel für CImageList::SetOverlayImage an.

CImageList::DrawEx

Zeichnet ein Bildlistenelement im angegebenen Gerätekontext.

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

Parameter

pDC
Zeiger auf den Zielgerätekontext.

nImage
Nullbasierter Index des zu zeichnenden Bilds.

pt
Position, an der innerhalb des angegebenen Gerätekontexts gezeichnet werden soll.

sz
Größe des Teils des Bilds, der relativ zur oberen linken Ecke des Bilds gezeichnet werden soll. Weitere Informationen finden Sie dx unter und in der dy ImageList_DrawEx Windows SDK.

clrBk
Hintergrundfarbe des Bilds. Weitere Informationen finden Sie rgbBk ImageList_DrawEx in der Windows SDK.

clrFg
Vordergrundfarbe des Bilds. Siehe rgbFg ImageList_DrawEx in im Windows SDK.

nStyle
Flag, das den Zeichnungsstil angibt. Siehe fStyle ImageList_DrawEx in im Windows SDK.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Die Funktion verwendet den angegebenen Zeichnungsstil und kombiniert das Bild mit der angegebenen Farbe.

Beispiel

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

CImageList::DrawIndirect

Rufen Sie diese Memberfunktion auf, um ein Bild aus einer Bildliste zu zeichnen.

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

Parameter

pimldp
Ein Zeiger auf eine IMAGELISTDRAWPARAMS -Struktur, die Informationen zum Zeichnen-Vorgang enthält.

pDC
Ein Zeiger auf den Zielgerätekontext. Sie müssen dieses Objekt CDC löschen, wenn Sie damit fertig sind.

nImage
Der nullbasierte Index des zu zeichneten Bilds.

pt
Eine POINT -Struktur, die die x- und y-Koordinaten enthält, an denen das Bild gezeichnet wird.

sz
Eine SIZE -Struktur, die die Größe des zu zeichneten Bilds angibt.

ptOrigin
Eine -Struktur, die die x- und y-Koordinaten enthält, die die linke obere Ecke des Zeichnungsvorganges in Bezug POINT auf das Bild selbst angeben. Pixel des Bilds, die sich links von der x-Koordinate und über der y-Koordinate befinden, werden nicht gezeichnet.

fStyle
Flag, das den Zeichnungsstil und optional das Überlagerungsbild angibt. Informationen zum Überlagerungsbild finden Sie im Abschnitt "Hinweise". Die MFC-Standardimplementierung zeichnet ILD_NORMAL das Bild mithilfe der Hintergrundfarbe für die Bildliste. Wenn die Hintergrundfarbe der Wert CLR_NONE ist, wird das Bild transparent mithilfe einer Maske gezeichnet.

Andere mögliche Stile werden unter dem fStyle -Member der -Struktur IMAGELISTDRAWPARAMS beschrieben.

dwRop
Wert, der einen Rastervorgangcode an gibt. Diese Codes definieren, wie die Farbdaten für das Quellrechteck mit den Farbdaten für das Zielrechteck kombiniert werden, um die endgültige Farbe zu erzielen. Die MFC-Standardimplementierung kopiert SRCCOPY das Quellrechteck direkt in das Zielrechteck. Dieser Parameter wird ignoriert, wenn fStyle der Parameter das Flag nicht ILD_ROP enthält.

Andere mögliche Werte werden unter dem dwRop -Member der -Struktur IMAGELISTDRAWPARAMS beschrieben.

rgbBack
Die Hintergrundfarbe des Bilds, standardmäßig CLR_DEFAULT . Dieser Parameter kann ein von der Anwendung definierter RGB-Wert oder einer der folgenden Werte sein:

Wert Bedeutung
CLR_DEFAULT Standardhintergrundfarbe. Das Bild wird mithilfe der Hintergrundfarbe der Bildliste gezeichnet.
CLR_NONE Keine Hintergrundfarbe. Das Bild wird transparent gezeichnet.

rgbFore
Die Vordergrundfarbe des Bilds ist standardmäßig CLR_DEFAULT . Dieser Parameter kann ein anwendungsdefiniertes RGB-Wert oder einer der folgenden Werte sein:

Wert Bedeutung
CLR_DEFAULT Standardvordergrundfarbe. Das Bild wird mithilfe der Hervorhebungsfarbe des Systems als Vordergrundfarbe gezeichnet.
CLR_NONE Keine Blendfarbe. Das Bild wird mit der Farbe des Zielgerätekontexts kombiniert.

Dieser Parameter wird nur verwendet, wenn fStyle das -Flag oder das ILD_BLEND25 ILD_BLEND50 -Flag enthält.

fState
Flag, das den Zeichnungszustand angibt. Dieser Member kann mindestens ein Imagelistenzustandsflag enthalten.

Frame
Wirkt sich auf das Verhalten von sättigen und Alphablendingeffekten aus.

Bei Verwendung mit ILS_SATURATE enthält dieser Member den Wert, der jeder Farbkomponente des RGB-Triplets für jedes Pixel im Symbol hinzugefügt wird.

Bei Verwendung mit ILS_APLHA enthält dieser Member den Wert für den Alphakanal. Dieser Wert kann zwischen 0 und 255 sein, wobei 0 vollständig transparent und 255 vollständig deckend ist.

crEffect
Ein COLORREF -Wert, der für Leucht- und Schatteneffekte verwendet wird.

Rückgabewert

TRUE , wenn das Bild erfolgreich gezeichnet wurde; andernfalls FALSE .

Hinweise

Verwenden Sie die erste Version, wenn Sie die Win32-Struktur selbst ausfüllen möchten. Verwenden Sie die zweite Version, wenn Sie eines oder mehrere der MFC-Standardargumente nutzen oder die Verwaltung der Struktur vermeiden möchten.

Ein Überlagerungsbild ist ein Bild, das über dem primären Bild gezeichnet wird, das in dieser Memberfunktion durch den -Parameter angegeben nImage wird. Zeichnen Sie eine Überlagerungsmaske, indem Sie die Memberfunktion mit dem einbasierten Index der Überlagerungsmaske verwenden, Draw die mithilfe des Makros angegeben INDEXTOOVERLAYMASK wurde.

Beispiel

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

Rufen Sie diese Funktion auf, um einen Ziehvorgang zu beenden.

static void PASCAL EndDrag();

Hinweise

Verwenden Sie die Memberfunktion, um einen BeginDrag Ziehvorgang zu starten.

Beispiel

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

Rufen Sie diese Funktion auf, um ein Symbol basierend auf einem Bild und der zugehörigen Maske in einer Bildliste zu erstellen.

HICON ExtractIcon(int nImage);

Parameter

nImage
Nullbasierter Index des Bilds.

Rückgabewert

Handle des Symbols, wenn erfolgreich; andernfalls NULL .

Hinweise

Diese Methode basiert auf dem Verhalten des ImageList_ExtractIcon Makros, um das Symbol zu erstellen. Weitere Informationen zum ImageList_ExtractIcon Erstellen und Bereinigten von Symbolen finden Sie im Makro.

Beispiel

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

Gibt einen Zeiger auf ein -Objekt CImageList zurück, wenn ein Handle für eine Bildliste angegeben wird.

static CImageList* PASCAL FromHandle(HIMAGELIST hImageList);

Parameter

hImageList
Gibt die Bildliste an.

Rückgabewert

Ein Zeiger auf ein CImageList -Objekt, wenn erfolgreich, andernfalls NULL .

Hinweise

Wenn noch CImageList kein an das Handle angefügt ist, wird ein CImageList temporäres Objekt erstellt und angefügt. Dieses temporäre Objekt ist nur gültig, bis die Anwendung das nächste Mal in ihrer Ereignisschleife leer ist, und zu diesem Zeitpunkt werden alle temporären CImageList Objekte gelöscht.

Beispiel

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

Gibt einen Zeiger auf ein -Objekt CImageList zurück, wenn ein Handle für eine Bildliste angegeben wird.

static CImageList* PASCAL FromHandlePermanent(HIMAGELIST hImageList);

Parameter

hImageList
Gibt die Bildliste an.

Rückgabewert

Ein Zeiger auf ein CImageList -Objekt, wenn erfolgreich, andernfalls NULL .

Hinweise

Wenn ein CImageList -Objekt nicht an das Handle angefügt NULL ist, wird zurückgegeben.

Beispiel

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

Rufen Sie diese Funktion auf, um die aktuelle Hintergrundfarbe für eine Bildliste abzurufen.

COLORREF GetBkColor() const;

Rückgabewert

Der RGB-Farbwert der Hintergrundfarbe des CImageList Objekts.

Beispiel

Sehen Sie sich das Beispiel für CImageList::SetBkColor an.

CImageList::GetDragImage

Ruft die temporäre Bildliste ab, die zum Ziehen verwendet wird.

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

Parameter

lpPoint
Adresse einer POINT -Struktur, die die aktuelle Ziehposition empfängt.

lpPointHotSpot
Adresse einer POINT -Struktur, die den Offset des Ziehbilds relativ zur Ziehposition empfängt.

Rückgabewert

Bei Erfolg ein Zeiger auf die temporäre Bildliste, die zum Ziehen verwendet wird. andernfalls NULL .

CImageList::GetImageCount

Rufen Sie diese Funktion auf, um die Anzahl der Bilder in einer Bildliste abzurufen.

int GetImageCount() const;

Rückgabewert

Die Anzahl der Bilder.

Beispiel

Sehen Sie sich das Beispiel für CImageList::ExtractIcon an.

CImageList::GetImageInfo

Rufen Sie diese Funktion auf, um Informationen zu einem Bild abzurufen.

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

Parameter

nImage
Nullbasierter Index des Bilds.

pImageInfo
Zeiger auf eine IMAGEINFO Struktur, die Informationen zum Bild empfängt. Die Informationen in dieser Struktur können verwendet werden, um die Bitmaps für das Bild direkt zu bearbeiten.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Die IMAGEINFO -Struktur enthält Informationen zu einem Bild in einer Bildliste.

CImageList::GetSafeHandle

Rufen Sie diese Funktion auf, um den m_hImageList Datenmember abzurufen.

HIMAGELIST GetSafeHandle() const;

Rückgabewert

Ein Handle für die angefügte Bildliste. andernfalls NULL , wenn kein Objekt angefügt ist.

Beispiel

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

CImageList::m_hImageList

Ein Handle der Bildliste, die an dieses Objekt angefügt ist.

HIMAGELIST m_hImageList;

Hinweise

Der m_hImageList Datenmember ist eine öffentliche Variable vom Typ HIMAGELIST .

Beispiel

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

CImageList::operator HIMAGELIST

Verwenden Sie diesen Operator, um das angefügte Handle des -Objekts CImageList zu erhalten.

operator HIMAGELIST() const;

Rückgabewert

Bei Erfolg ein Handle für die durch das -Objekt dargestellte CImageList Bildliste, andernfalls NULL .

Hinweise

Dieser Operator ist ein Umwandlungsoperator, der die direkte Verwendung eines Objekts HIMAGELIST unterstützt.

Beispiel

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

CImageList::Read

Rufen Sie diese Funktion auf, um eine Bildliste aus einem Archiv zu lesen.

BOOL Read(CArchive* pArchive);

Parameter

pArchive
Ein Zeiger auf ein CArchive -Objekt, aus dem die Bildliste gelesen werden soll.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Beispiel

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

Rufen Sie diese Funktion auf, um ein Bild aus einem Bildlistenobjekt zu entfernen.

BOOL Remove(int nImage);

Parameter

nImage
Nullbasierter Index des zu entfernenden Bilds.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Alle nachfolgenden nImage Elemente werden nun um eine Position nach unten bewegt. Wenn eine Bildliste z. B. zwei Elemente enthält, wird durch das Löschen des ersten Elements das verbleibende Element an der ersten Position positioniert. nImage=0 für das Element an der ersten Position.

Beispiel

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

CImageList::Replace

Rufen Sie diese Funktion auf, um ein Bild in einer Bildliste durch ein neues Bild zu ersetzen.

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

int Replace(
    int nImage,
    HICON hIcon);

Parameter

nImage
Nullbasierter Index des zu ersetzenden Bilds.

pbmImage
Ein Zeiger auf die Bitmap, die das Bild enthält.

pbmMask
Ein Zeiger auf die Bitmap, die die Maske enthält. Wenn keine Maske mit der Bildliste verwendet wird, wird dieser Parameter ignoriert.

hIcon
Ein Handle für das Symbol, das die Bitmap und die Maske für das neue Bild enthält.

Rückgabewert

Die zurückgegebene BOOL Version gibt bei Erfolg einen Wert ungleich 0 (null) zurück, andernfalls 0.

Die zurückgegebene Version gibt bei Erfolg den nullbasierten Index des Images int zurück, andernfalls 1.

Hinweise

Rufen Sie diese Memberfunktion nach dem Aufruf von auf, um den Platzhalterbild-Indexnummern die neuen SetImageCount gültigen Bilder zu zuweisen.

Beispiel

Weitere Informationen finden Sie im Beispiel CImageList::SetImageCount für .

CImageList::SetBkColor

Rufen Sie diese Funktion auf, um die Hintergrundfarbe für eine Bildliste festzulegen.

COLORREF SetBkColor(COLORREF cr);

Parameter

cr
Festzulegende Hintergrundfarbe. Kann CLR_NONE sein. In diesem Fall werden Bilder transparent mithilfe der Maske gezeichnet.

Rückgabewert

Die vorherige Hintergrundfarbe, wenn erfolgreich; andernfalls CLR_NONE .

Beispiel

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

CImageList::SetDragCursorImage

Erstellt ein neues Ziehbild, indem das angegebene Bild (in der Regel ein Mauszeigerbild) mit dem aktuellen Ziehbild kombiniert wird.

BOOL SetDragCursorImage(
    int nDrag,
    CPoint ptHotSpot);

Parameter

nDrag
Index des neuen Bilds, das mit dem Ziehbild kombiniert werden soll.

ptHotSpot
Position des Hotspots innerhalb des neuen Bilds.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Da die Ziehfunktionen das neue Bild während eines Ziehvorgangs verwenden, sollten Sie die Windows-Funktion verwenden, ShowCursor um den tatsächlichen Mauscursor nach dem Aufruf von auszublenden. CImageList::SetDragCursorImage Andernfalls scheint das System für die Dauer des Ziehvorgangs über zwei Mauscursor zu verfügen.

CImageList::SetImageCount

Rufen Sie diese Memberfunktion auf, um die Anzahl der Bilder in einem CImageList -Objekt zurückzusetzen.

BOOL SetImageCount(UINT uNewCount);

Parameter

uNewCount
Der Wert, der die neue Gesamtzahl der Bilder in der Bildliste angibt.

Rückgabewert

Ungleich 0, wenn erfolgreich, andernfalls 0.

Hinweise

Wenn Sie diese Memberfunktion aufrufen, um die Anzahl der Bilder in der Bildliste zu erhöhen, rufen Sie Replace für jedes zusätzliche Bild auf, um die neuen Indizes gültigen Bildern zuzuweisen. Wenn Sie die Indizes nicht gültigen Bildern zuweisen, sind Gezeichnete Vorgänge, die die neuen Bilder erstellen, unvorhersehbar.

Wenn Sie die Größe einer Bildliste mit dieser Funktion verringern, werden die abgeschnittenen Bilder freigegeben.

Beispiel

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

Rufen Sie diese Funktion auf, um der Liste der Bilder, die als Überlagerungsmasken verwendet werden sollen, den nullbasierten Index eines Bilds hinzuzufügen.

BOOL SetOverlayImage(
    int nImage,
    int nOverlay);

Parameter

nImage
Nullbasierter Index des Bilds, das als Überlagerungsmaske verwendet werden soll.

nOverlay
Ein basierter Index der Überlagerungsmaske.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Der Liste können bis zu vier Indizes hinzugefügt werden.

Eine Überlagerungsmaske ist ein Bild, das transparent über ein anderes Bild gezeichnet wird. Zeichnen Sie eine Überlagerungsmaske über einem Bild, indem Sie die CImageList::Draw Memberfunktion mit dem 1-basierten Index der Überlagerungsmaske verwenden, die mithilfe des Makros angegeben INDEXTOOVERLAYMASK wird.

Beispiel

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

Rufen Sie diese Funktion auf, um ein Bildlistenobjekt in ein Archiv zu schreiben.

BOOL Write(CArchive* pArchive);

Parameter

pArchive
Ein Zeiger auf ein CArchive -Objekt, in dem die Bildliste gespeichert werden soll.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Beispiel

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

Weitere Informationen

CObject Klasse
Hierarchiediagramm
CListCtrl Klasse
CTabCtrl Klasse