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 Bild oder Bilder hinzu. |
CImageList::Attach |
Fügt eine Bildliste an ein CImageList Objekt an. |
CImageList::BeginDrag |
Beginnt mit dem Ziehen eines Bilds. |
CImageList::Copy |
Kopiert ein Bild innerhalb eines CImageList Objekts. |
CImageList::Create |
Initialisiert eine Bildliste und fügt sie an ein CImageList Objekt an. |
CImageList::DeleteImageList |
Löscht eine Bildliste. |
CImageList::DeleteTempMap |
Wird vom CWinApp Leerlaufzeithandler aufgerufen, um alle temporären CImageList Objekte zu löschen, die von FromHandle . |
CImageList::Detach |
Trennt ein Bildlistenobjekt von einem CImageList Objekt und gibt ein Handle an eine Bildliste zurück. |
CImageList::DragEnter |
Sperrt Aktualisierungen während eines Ziehvorgangs und zeigt das Ziehbild an einer angegebenen Position an. |
CImageList::DragLeave |
Entsperrt das Fenster und blendet das Ziehbild aus, sodass das Fenster aktualisiert werden kann. |
CImageList::DragMove |
Verschiebt das Bild, das bei einem Drag & Drop-Vorgang gezogen wird. |
CImageList::DragShowNolock |
Blendet das Ziehbild während eines Ziehvorgangs ein oder aus, ohne das Fenster zu sperren. |
CImageList::Draw |
Zeichnet das Bild, das während eines Drag-and-Drop-Vorgangs gezogen wird. |
CImageList::DrawEx |
Zeichnet ein Bildlistenelement im angegebenen Gerätekontext. Die Funktion verwendet den angegebenen Zeichenstil und blendet das Bild mit der angegebenen Farbe zusammen. |
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 Image ab |
CImageList::GetSafeHandle |
m_hImageList Ruft 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 Bild. |
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 den nullbasierten Index eines Bilds zur Liste der Bilder hinzu, die als Überlagerungsmasken verwendet werden sollen. |
CImageList::Write |
Schreibt eine Bildliste in ein Archiv. |
Öffentliche Operatoren
Name | Beschreibung |
---|---|
CImageList::operator HIMAGELIST |
Gibt den HIMAGELIST angefügten Wert zurück CImageList . |
Ö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 jeder durch seinen nullbasierten Index verwiesen werden kann. Bildlisten werden verwendet, um große Gruppen 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 monochrome Bitmap enthalten, die Masken enthält, die zum transparenten Zeichnen von Bildern (Symbolformat) verwendet werden. Die Microsoft Win32-Anwendungsprogrammierschnittstelle (API) bietet Bildlistenfunktionen, mit denen Sie Bilder zeichnen, Bilder erstellen und zerstören, Bilder hinzufügen und entfernen, Bilder ersetzen, Bilder zusammenführen und ziehen können.
Dieses Steuerelement (und daher die Klasse) ist nur für Programme verfügbar, die CImageList
unter Windows 95/98 und Windows NT, Version 3.51 und höher ausgeführt werden.
Weitere Informationen zur Verwendung CImageList
finden Sie unter "Steuerelemente und Verwenden" CImageList
.
Vererbungshierarchie
CImageList
Anforderungen
Header: afxcmn.h
CImageList::Add
Rufen Sie diese Funktion auf, um einer Bildliste mindestens ein Bild oder ein Symbol hinzuzufügen.
int Add(
CBitmap* pbmImage,
CBitmap* pbmMask);
int Add(
CBitmap* pbmImage,
COLORREF crMask);
int Add(HICON hIcon);
Parameter
pbmImage
Zeigen Sie auf die Bitmap, die das Bild oder die Bilder enthält. Die Anzahl der Bilder wird von der Breite der Bitmap abgeleitet.
pbmMask
Zeigen Sie 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 die Maske für das neue Bild enthält.
Rückgabewert
Nullbasierter Index des ersten neuen Bilds bei erfolgreicher Ausführung; andernfalls - 1.
Hinweise
Sie sind dafür verantwortlich, den Symbolziehpunkt 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 zu einem Bildlistenobjekt.
Rückgabewert
Nonzero, 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 Anfangsziehposition (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. Zum Beenden des Ziehvorgangs 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 Bitkennzeichnungswert, der den Typ des zu erstellenden Kopiervorgangs angibt. Dieser Parameter kann einen der folgenden -Werte aufweisen:
Wert | Bedeutung |
---|---|
ILCF_MOVE |
Das Quellbild wird in den Index des Zielbilds kopiert. Dieser Vorgang führt zu mehreren Instanzen eines bestimmten Bilds. ILCF_MOVE ist die Standardoption. |
ILCF_SWAP |
Die Quell- und Zielbilder 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 der einzelnen Bilder in Pixeln.
cy
Abmessungen der einzelnen Bilder in Pixeln.
nFlags
Gibt den Typ der zu erstellenden Bildliste an. Dieser Parameter kann eine Kombination aus den folgenden Werten sein, kann jedoch nur einen der ILC_COLOR
Werte enthalten.
Wert | Bedeutung |
---|---|
ILC_COLOR |
Verwenden Sie das Standardverhalten, wenn keines der anderen ILC_COLOR* Flags angegeben ist. In der Regel lautet ILC_COLOR4 der Standardwert ; bei älteren Anzeigetreibern ist ILC_COLORDDB die Standardeinstellung jedoch . |
ILC_COLOR4 |
Verwenden Sie einen 4-Bit-Abschnitt (16 Farben) geräteunabhängige Bitmap (DIB) als Bitmap für die Bildliste. |
ILC_COLOR8 |
Verwenden Sie einen 8-Bit-DIB-Abschnitt. Die Farben, die für die Farbtabelle verwendet werden, sind die gleichen Farben wie die Halbtonpalette. |
ILC_COLOR16 |
Verwenden Sie einen 16-Bit-DIB-Abschnitt (32/64k 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 monochrome 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
Die Anzahl der Bilder, die die Bildliste anfänglich enthält.
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 die Bildliste mit geänderter Größe enthalten kann.
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 Bilds.
imagelist2
Ein Verweis auf ein CImageList
-Objekt.
nImage2
Index des zweiten vorhandenen Bilds.
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 eine CImageList
in zwei Schritten. Rufen Sie zuerst den Konstruktor auf, und rufen Sie dann auf Create
, wodurch die Bildliste erstellt und an das CImageList
Objekt angefügt 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 CWinApp
Leerlaufzeithandler aufgerufen, werden alle temporären CImageList
Objekte, die von FromHandle erstellt wurden, DeleteTempMap
gelöscht, jedoch werden keine Handles ( hImageList
) vorübergehend den ImageList
Objekten zugeordnet.
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 CImageList
Objekt zu trennen.
HIMAGELIST Detach();
Rückgabewert
Ein Handle zu einem Bildlistenobjekt.
Hinweise
Diese Funktion gibt ein Handle für das Bildlistenobjekt zurück.
Beispiel
Ein Beispiel hierfür finden Sie unter CImageList::Attach
.
CImageList::DragEnter
Sperrt während eines Ziehvorgangs Updates für das durch pWndLock
das angegebene Fenster und zeigt das Ziehbild an der durch point
.
static BOOL PASCAL DragEnter(
CWnd* pWndLock,
CPoint point);
Parameter
pWndLock
Zeigen Sie 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 der Clientbereich).
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Die Koordinaten sind relativ zur oberen linken Ecke des Fensters, sodass Sie beim Angeben der Koordinaten die Breite von Fensterelementen wie Rahmen, Titelleiste und Menüleiste ausgleichen müssen.
Wenn pWndLock
dies der Fall ist NULL
, zeichnet diese Funktion das Bild im Dem Desktopfenster zugeordneten Anzeigekontext, und Koordinaten sind relativ zur oberen linken Ecke des Bildschirms.
Diese Funktion sperrt alle anderen Aktualisierungen des angegebenen Fensters während des Ziehvorgangs. Wenn Sie während eines Ziehvorgangs eine Zeichnung ausführen müssen, z. B. das Hervorheben des Ziels eines Drag-and-Drop-Vorgangs, können Sie das gezogene Bild vorübergehend mithilfe der CImageList::DragLeave
Funktion ausblenden.
Beispiel
Ein Beispiel hierfür finden Sie unter CImageList::BeginDrag
.
CImageList::DragLeave
Entsperrt das durch pWndLock
das Ziehbild angegebene Fenster und blendet es aus, sodass das Fenster aktualisiert werden kann.
static BOOL PASCAL DragLeave(CWnd* pWndLock);
Parameter
pWndLock
Zeigen Sie auf das Fenster, das das Ziehbild besitzt.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Beispiel
Ein Beispiel hierfür finden Sie unter CImageList::EndDrag
.
CImageList::DragMove
Rufen Sie diese Funktion auf, um das Bild zu verschieben, das während eines Drag-and-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 BeginDrag
Memberfunktion, um einen Ziehvorgang zu starten.
Beispiel
void CImageListDlg::OnMouseMove(UINT nFlags, CPoint point)
{
m_myImageList.DragMove(point);
CDialog::OnMouseMove(nFlags, point);
}
CImageList::DragShowNolock
Blendet das Ziehbild während eines Ziehvorgangs ein oder 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-and-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
Kennzeichen, das das Zeichenformat angibt. Dabei kann es sich um einen oder mehrere dieser Werte handeln:
Wert | Bedeutung |
---|---|
ILD_BLEND25 , ILD_FOCUS |
Zeichnet das Bild, wobei 25 Prozent mit der Farbe für die Systemmarkierung gemischt wird. 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 Systemmarkierungsfarbe 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 mithilfe der Maske transparent gezeichnet. |
ILD_TRANSPARENT |
Zeichnet das Bild unabhängig von der Hintergrundfarbe transparent mithilfe der Maske. |
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Beispiel
Ein Beispiel hierfür finden Sie unter CImageList::SetOverlayImage
.
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 Bildteils, der relativ zur oberen linken Ecke des Bilds gezeichnet werden soll. Anzeigen dx
und dy
Einfügen ImageList_DrawEx
im Windows SDK.
clrBk
Hintergrundfarbe des Bilds. Siehe rgbBk
im ImageList_DrawEx
Windows SDK.
clrFg
Vordergrundfarbe des Bilds. Siehe rgbFg
im ImageList_DrawEx
Windows SDK.
nStyle
Kennzeichen, das das Zeichenformat angibt. Siehe fStyle
im ImageList_DrawEx
Windows SDK.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Die Funktion verwendet den angegebenen Zeichenstil und blendet das Bild mit der angegebenen Farbe zusammen.
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 enthält.
pDC
Ein Zeiger auf den Zielgerätekontext. Sie müssen dieses CDC
Objekt löschen, wenn Sie damit fertig sind.
nImage
Der nullbasierte Index des zu zeichnenden Bilds.
pt
Eine POINT
Struktur, die die x- und y-Koordinaten enthält, in der das Bild gezeichnet wird.
sz
Eine SIZE
Struktur, die die Größe des zu zeichnenden Bilds angibt.
ptOrigin
Eine POINT
Struktur mit den X- und Y-Koordinaten, die die obere linke Ecke des Zeichnungsvorgangs in Bezug auf das Bild selbst angeben. Pixel des Bilds, die links neben der X-Koordinate und oberhalb der Y-Koordinate liegen, werden nicht gezeichnet.
fStyle
Kennzeichen, das den Zeichenstil und optional das Überlagerungsbild angibt. Informationen zum Überlagerungsbild finden Sie im Abschnitt "Hinweise". Die MFC-Standardimplementierung ILD_NORMAL
zeichnet das Bild mithilfe der Hintergrundfarbe für die Bildliste. Wenn die Hintergrundfarbe der CLR_NONE
Wert ist, wird das Bild mithilfe einer Maske transparent gezeichnet.
Weitere mögliche Formatvorlagen werden unter dem fStyle
Element der IMAGELISTDRAWPARAMS
Struktur beschrieben.
dwRop
Wert, der einen Rastervorgangscode angibt. 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 Standardimplementierung SRCCOPY
von MFC kopiert das Quellrechteck direkt in das Zielrechteck. Dieser Parameter wird ignoriert, wenn der fStyle
Parameter das ILD_ROP
Flag nicht enthält.
Weitere mögliche Werte werden unter dem dwRop
Element der IMAGELISTDRAWPARAMS
Struktur beschrieben.
rgbBack
Die Hintergrundfarbe des Bilds standardmäßig CLR_DEFAULT
. Dieser Parameter kann ein anwendungsdefinierter 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
Vordergrundfarbe des Bilds, standardmäßig CLR_DEFAULT
. Dieser Parameter kann ein anwendungsdefinierter RGB-Wert oder einer der folgenden Werte sein:
Wert | Bedeutung |
---|---|
CLR_DEFAULT |
Standard-Vordergrundfarbe. Das Bild wird mit der Systemmarkierungsfarbe als Vordergrundfarbe gezeichnet. |
CLR_NONE |
Keine Mischungsfarbe. Das Bild wird mit der Farbe des Zielgerätekontexts kombiniert. |
Dieser Parameter wird nur verwendet, wenn fStyle
er das ILD_BLEND25
Attribut enthält ILD_BLEND50
.
fState
Kennzeichen, das den Zeichnungszustand angibt. Dieses Element kann ein oder mehrere Bildlistenstatuskennzeichnungen enthalten.
Frame
Wirkt sich auf das Verhalten von Sättigungs- und Alphamischungseffekten aus.
Bei Verwendung mit ILS_SATURATE
diesem Element enthält dieses Element den Wert, der jeder Farbkomponente des RGB-Triplets für jedes Pixel im Symbol hinzugefügt wird.
Bei Verwendung mit ILS_APLHA
diesem Element wird der Wert für den Alphakanal enthalten. Dieser Wert kann zwischen 0 und 255 sein, wobei 0 vollständig transparent ist und 255 vollständig undurchsichtig ist.
crEffect
Ein COLORREF
Wert, der für Leucht- und Schatteneffekte verwendet wird.
Rückgabewert
TRUE
wenn das Bild erfolgreich gezeichnet wird; 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 Standardargumente von MFC nutzen möchten, oder vermeiden Sie die Verwaltung der Struktur.
Ein Überlagerungsbild ist ein Bild, das über dem primären Bild gezeichnet wird, das in dieser Memberfunktion durch den nImage
Parameter angegeben wird. Zeichnen Sie ein Überlagerungsformat mithilfe der Draw
Memberfunktion mit dem 1-basierten Index der überlagerten Maske, die mithilfe des INDEXTOOVERLAYMASK
Makros angegeben wird.
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 BeginDrag
Memberfunktion, um einen 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 dessen zugehöriger Maske in einer Bildliste zu erstellen.
HICON ExtractIcon(int nImage);
Parameter
nImage
Nullbasierter Index des Bilds.
Rückgabewert
Handle des Symbols bei erfolgreicher Ausführung; andernfalls NULL
.
Hinweise
Diese Methode basiert auf dem Verhalten des ImageList_ExtractIcon
Makros, um das Symbol zu erstellen. Weitere Informationen zum Erstellen und Bereinigen von Symbolen finden Sie im ImageList_ExtractIcon
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 CImageList
Objekt 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 bei erfolgreicher Ausführung; andernfalls NULL
.
Hinweise
Wenn ein CImageList
Objekt noch nicht an das Handle angefügt ist, wird ein temporäres CImageList
Objekt erstellt und angefügt. Dieses temporäre CImageList
Objekt ist nur gültig, bis die Anwendung das nächste Mal leerlauf in der Ereignisschleife hat, zu der zeitpunkt, zu dem alle temporären Objekte gelöscht werden.
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 CImageList
Objekt 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 bei erfolgreicher Ausführung; andernfalls NULL
.
Hinweise
Wenn ein CImageList
Objekt nicht an das Handle angefügt ist, NULL
wird dieses 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 CImageList
Objekthintergrundfarbe.
Beispiel
Ein Beispiel hierfür finden Sie unter CImageList::SetBkColor
.
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 erfolgreicher Ausführung zeigt 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
Ein Beispiel hierfür finden Sie unter CImageList::ExtractIcon
.
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
Zeigen Sie auf eine IMAGEINFO
Struktur, die Informationen über das 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 das m_hImageList
Datenelement abzurufen.
HIMAGELIST GetSafeHandle() const;
Rückgabewert
Ein Handle für die angefügte Bildliste; andernfalls NULL
wird kein Objekt angefügt.
Beispiel
// Get the safe handle to the image list.
HIMAGELIST hImageList = m_myImageList.GetSafeHandle();
CImageList::m_hImageList
Ein Handle der an dieses Objekt angefügten Bildliste.
HIMAGELIST m_hImageList;
Hinweise
Das m_hImageList
Datenelement 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 CImageList
Objekts abzurufen.
operator HIMAGELIST() const;
Rückgabewert
Bei erfolgreicher Ausführung ein Handle für die Bildliste, die durch das CImageList
Objekt dargestellt wird; andernfalls NULL
.
Hinweise
Dieser Operator ist ein Umwandlungsoperator, der die direkte Verwendung eines HIMAGELIST
Objekts 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 elemente, die jetzt folgen, nImage
bewegen sich um eine Position nach unten. Wenn z. B. eine Bildliste zwei Elemente enthält, führt das Löschen des ersten Elements dazu, dass sich das verbleibende Element jetzt an der ersten Position befindet. 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 einen Wert ungleich Null zurück, wenn dies erfolgreich ist; andernfalls 0.
Die zurückgegebene int
Version gibt den nullbasierten Index des Bilds zurück, wenn dies erfolgreich ist; andernfalls - 1.
Hinweise
Rufen Sie diese Memberfunktion nach dem Aufrufen SetImageCount
auf, um die neuen, gültigen Bilder den Platzhalterbildindexnummern zuzuweisen.
Beispiel
Ein Beispiel hierfür finden Sie unter CImageList::SetImageCount
.
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 mithilfe der Maske transparent gezeichnet.
Rückgabewert
Die vorherige Hintergrundfarbe bei erfolgreicher Ausführung; 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 ShowCursor
verwenden, um den eigentlichen Mauscursor nach dem Aufrufen CImageList::SetDragCursorImage
auszublenden. Andernfalls scheint das System zwei Mauszeiger für die Dauer des Ziehvorgangs zu haben.
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 Gesamtanzahl von Bildern 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 Replace
Sie jedes zusätzliche Bild auf, um die neuen Indizes gültigen Bildern zuzuweisen. Wenn Sie die Indizes nicht gültigen Bildern zuweisen können, sind Zeichnungsvorgänge, die die neuen Bilder erstellen, unvorhersehbar.
Wenn Sie die Größe einer Bildliste mithilfe 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 den nullbasierten Index eines Bilds zur Liste der Bilder hinzuzufügen, die als Überlagerungsmasken verwendet werden sollen.
BOOL SetOverlayImage(
int nImage,
int nOverlay);
Parameter
nImage
Nullbasierter Index des Bilds, das als Überlagerungsmaske verwendet werden soll.
nOverlay
Ein 1-basierter Index der Überlagerungsmaske.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Bis zu vier Indizes können der Liste hinzugefügt werden.
Eine Überlagerungsmaske ist ein Bild, das transparent über ein anderes Bild gezeichnet wird. Zeichnen Sie eine Überlagerungsmaske über ein Bild, indem Sie die CImageList::Draw
Memberfunktion mit dem 1-basierten Index der überlagerten Maske verwenden, die mithilfe des INDEXTOOVERLAYMASK
Makros angegeben 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);
Siehe auch
CObject
-Klasse
Hierarchiediagramm
CListCtrl
Klasse
CTabCtrl
Klasse