Freigeben über


Darstellen von Bildern aus einer Bildliste

Um ein Bild zu zeichnen, verwenden Sie die CImageList::Draw-Memberfunktion. Sie geben einen Zeiger auf ein Gerätekontextobjekt, der Index des Bildes, um zu zeichnen, der Speicherort im Gerätekontext, an dem das Bild gezeichnet und ein Satz von Flags, um dem Zeichnungsformat anzugeben.

Wenn Sie dem Stil ILD_TRANSPARENT angeben, verwendet Zeichnen einen Vorgang in zwei Schritten, ein maskiertes Bild zu zeichnen. Zuerst wird ein Vorgang des logischen AND-Vorgangs auf den Bits des Bilds und den Bits der Maske aus. Anschließend führt ein Vorgang LogischXOR auf dem Ergebnis des ersten Vorgangs und der Hintergrundbits des Zielgerätekontexts aus. Dieser Prozess erstellt transparente Bereiche im resultierenden Bild; das bedeutet, dass jedes Bit weiße in der Maske das entsprechende Bit im resultierenden Bild, transparent sein.

Bevor Sie ein maskiertes Bild auf einem Volltonfarbenhintergrund zeichnen, können Sie die Memberfunktion SetBkColor verwenden, um die Hintergrundfarbe der Bildliste auf die gleiche Farbe wie das Ziel festzulegen. Das Festlegen der Farbe entfällt die Notwendigkeit, transparente Bereiche im Bild zu erstellen und aktiviert Zeichnen, um das Bild auf Zielgerätekontext, und einen beträchtlichen Anstiegs in der Leistung einfach zu kopieren. Um das Bild zu zeichnen, geben Sie den ILD_NORMAL Format an wenn Sie Zeichnen aufrufen.

Sie können die Hintergrundfarbe für eine maskierte Bildliste (CImageList) jederzeit festlegen, damit sie korrekt auf jedem ausgefüllten Hintergrund. Das Festlegen der Hintergrundfarbe auf CLR_NONE bewirkt Bilder, standardmäßig transparent gezeichnet werden. Wenn Sie die Hintergrundfarbe einer Bildliste abzurufen, verwenden Sie die GetBkColor-Memberfunktion.

Das ILD_BLEND25 und ILD_BLEND50 Formatzittern das Bild mit der Systemhervorhebungsfarbe. Diese Formate sind nützlich, wenn Sie ein maskiertes Bild verwenden, um ein Objekt dargestellt, das der Benutzer auswählen kann. Beispielsweise können Sie das Format ILD_BLEND50 verwenden, um das Bild zu zeichnen, wenn der Benutzer es auswählen.

Ein nicht maskiertes Bild wird dem Zielgerätekontext mithilfe des SRCCOPY Rastervorgangs kopiert. Die Farben im Bild werden identisch dargestellt unabhängig davon die Hintergrundfarbe des Gerätekontexts. Die Zeichnungsformate, die in Zeichnen angegeben haben, werden auch keine Auswirkungen auf die Darstellung eines nicht maskierten Bilds.

Zusätzlich zur Memberfunktion Videofunktionen erweitert anderen Funktion, DrawIndirect, die Fähigkeit, ein Bild zu rendern. DrawIndirect akzeptiert, als Parameter, eine IMAGELISTDRAWPARAMS-Struktur. Diese Struktur kann verwendet werden, um das Rendern des Bilds aktuellen, einschließlich der Verwendung von Rastervorgangs- (ROP)- Code anpassen. Weitere Informationen über Überrollschutzvorrichtungs-Codes, finden Sie unter Raster-Operationscodes und Bitmaps als Pinsel in Windows SDK.

Siehe auch

Referenz

Verwenden von CImageList

Konzepte

Steuerelemente (MFC)