Freigeben über


Zeichnen von Bildern aus einer Bildliste

Hinweis

Die Microsoft Foundation Classes (MFC)-Bibliothek wird weiterhin unterstützt. Wir fügen jedoch keine Features mehr hinzu oder aktualisieren die Dokumentation.

Verwenden Sie zum Erstellen eines Bildes die Memberfunktion "CImageList::Draw". Sie geben einen Zeiger auf ein Gerätekontextobjekt, den Index des zu zeichnenden Bilds, die Position im Gerätekontext, an der das Bild gezeichnet werden soll, und eine Reihe von Kennzeichnungen an, um den Zeichenstil anzugeben.

Wenn Sie den ILD_TRANSPARENT Stil angeben, verwendet Draw einen zweistufigen Prozess, um ein maskiertes Bild zu zeichnen. Zunächst führt sie einen logischen UND-Vorgang für die Bits des Bilds und die Bits der Maske aus. Anschließend führt sie einen logischen XOR-Vorgang für die Ergebnisse des ersten Vorgangs und die Hintergrundbits des Zielgerätekontexts aus. Dieser Prozess schafft transparente Bereiche im resultierenden Bild; d. h., jedes weiße Bit in der Maske bewirkt, dass das entsprechende Bit im resultierenden Bild transparent ist.

Bevor Sie ein maskiertes Bild auf einem Volltonfarbenhintergrund zeichnen, sollten Sie die SetBkColor-Memberfunktion verwenden, um die Hintergrundfarbe der Bildliste auf dieselbe Farbe wie das Ziel festzulegen. Wenn Sie die Farbe festlegen, ist es nicht erforderlich, transparente Bereiche im Bild zu erstellen und das Draw Bild einfach in den Zielgerätekontext zu kopieren, was zu einer erheblichen Leistungssteigerung führt. Um das Image darzustellen, geben Sie den Stil ILD_NORMAL an, wenn Sie Draw aufrufen.

Sie können die Hintergrundfarbe für eine maskierte Bildliste (CImageList) jederzeit so festlegen, dass sie auf jedem vollfarbigen Hintergrund korrekt bezieht. Wenn Sie die Hintergrundfarbe auf CLR_NONE festlegen, werden Bilder standardmäßig transparent gezeichnet. Verwenden Sie die Memberfunktion "GetBkColor ", um die Hintergrundfarbe einer Bildliste abzurufen.

Die Stile ILD_BLEND25 und ILD_BLEND50 führen ein Dithering des Bildes mit der systemeigenen Hervorhebungsfarbe durch. Diese Formatvorlagen sind nützlich, wenn Sie ein maskiertes Bild verwenden, um ein Objekt darzustellen, das der Benutzer auswählen kann. Zum Beispiel können Sie den ILD_BLEND50 Stil verwenden, um das Bild zu zeichnen, wenn der Benutzer es auswählt.

Ein nicht maskiertes Bild wird mithilfe des SRCCOPY Rastervorgangs in den Zielgerätekontext kopiert. Die Farben im Bild werden unabhängig von der Hintergrundfarbe des Gerätekontexts gleich angezeigt. Die in Draw angegebenen Zeichenstile wirken sich ebenfalls nicht auf das Erscheinungsbild eines nicht maskierten Bildes aus.

Neben der Draw-Memberfunktion erweitert eine andere Funktion, DrawIndirect, die Möglichkeit zum Rendern eines Bilds. DrawIndirect verwendet als Parameter eine IMAGELISTDRAWPARAMS-Struktur . Diese Struktur kann verwendet werden, um das Rendering des aktuellen Bilds anzupassen, einschließlich der Verwendung von Rastervorgangscodes (ROP). Weitere Informationen über ROP Codes finden Sie unter Raster Operation Codes und Bitmaps als Brushes im Windows SDK.

Siehe auch

Verwenden von CImageList
Steuerung