Zeichnungs-Images aus einer Bildliste

Um ein Bild zu zeichnen, verwenden Sie die CImageList::Draw-Memberfunktion.Sie geben einen Zeiger auf einen Gerätekontext, der Index des Bilds an, um zu zeichnen, der Speicherort im Gerätekontext, an dem das Bild gezeichnet werden soll, sowie eine Reihe von Flags, um das Zeichnungsformat anzugeben.

Wenn Sie das ILD_TRANSPARENT Format angeben, verwendet Zeichnen einen zwei Schritte, um ein maskiertes Bild gezeichnet werden soll.Zuerst führt es einen Vorgang des logischen AND-Operation für Bits des Bilds und Bits der Maske aus.Anschließend führt es einen Vorgang Logische XOR mit den Ergebnissen des ersten Vorgangs und der Hintergrund Bits des Ziels gerätekontexts aus.Dieser Vorgang erstellt transparente Bereiche im resultierenden Bildes. Das heißt, wird jedes weiße Bit in der Maske das entsprechende Bit im resultierenden Bild transparent sein.

Bevor Sie ein maskiertes Hintergrund mit Volltonfarben auf einem Bild gezeichnet wird, sollten Sie die SetBkColor-Memberfunktion verwenden, um die Hintergrundfarbe der Bildliste an die gleiche Farbe wie das Ziel festzulegen.Das Festlegen der Farbe entfällt die Notwendigkeit, transparente Bereiche im Bild zu erstellen und ermöglicht Zeichnen, dass das Bild auf den Zielgerätekontext, mit dem Ergebnis eines wichtigen Anstiegs der Leistung zu kopieren.Um das Bild gezeichnet werden soll, geben Sie das Format ILD_NORMAL Wenn Sie Zeichnen aufrufen.

Sie können die Hintergrundfarbe für eine maskierte Bildliste (CImageList) jederzeit festlegen, damit sie ordnungsgemäß auf einer gefüllten Hintergrund zeichnet.Das Festlegen der Hintergrundfarbe zu CLR_NONE Bilder, wird standardmäßig transparent gezeichnet werden soll.Um die Hintergrundfarbe einer Bildliste abzurufen, verwenden Sie die GetBkColor-Memberfunktion.

Die ILD_BLEND25 und ILD_BLEND50 Formate rastern das Bild mit dem System hervorhebungsfarbe.Diese Formate sind hilfreich, wenn Sie ein maskiertes Bild verwenden, um ein Objekt dargestellt, das der Benutzer auswählen kann.Sie können beispielsweise das Format ILD_BLEND50 verwenden, um das Bild zu zeichnen, wenn der Benutzer es ausgewählt wird.

Ein nicht maskiert Bild wird im Zielgerätekontext unter Verwendung des SRCCOPY Raster Vorgangs kopiert.Die Farben des Bildes unabhängig davon gleich erscheinen die Hintergrundfarbe des Gerätekontext.Die Zeichnungsformate, die in Zeichnen angegeben haben, werden auch keine Auswirkungen auf die Darstellung eines nicht maskiert Bilds.

Neben der Memberfunktion nicht erweitert Zeichnen von DrawIndirect-Funktion die Möglichkeit, ein Bild zu rendern.DrawIndirect als Parameter akzeptiert, eine IMAGELISTDRAWPARAMS-Struktur.Diese Struktur kann verwendet werden, um das Rendering des aktuellen Bildes, einschließlich der Verwendung von Code des Rasters Vorgangs anzupassen (Überrollschutzvorrichtung).Weitere Informationen zu Überrollschutzvorrichtungs-Codes finden Sie unter Raster-Operationscodes und Bitmap als Pinsel in Windows SDK.

Siehe auch

Referenz

Verwenden von CImageList

Konzepte

Steuerelemente (MFC)