Paletten

Die DrawDib-Funktionen erfordern, dass eine Anwendung auf zwei palettenorientierte Nachrichten reagiert: WM_QUERYNEWPALETTE und WM_PALETTECHANGED. Wenn Ihre Anwendung nicht palettenfähig ist, müssen Sie für jede dieser Nachrichten einen Handler hinzufügen. Weitere Informationen zum Verarbeiten der WM_QUERYNEWPALETTE und WM_PALETTECHANGED Nachrichten finden Sie unter Hinzufügen von Palettennachrichtenhandlern.

Mithilfe der DrawDib-Funktion können Sie die aktuelle DrawDib-Palette auf dem DC realisieren. Sie sollten die Palette als Reaktion auf die WM_QUERYNEWPALETTE - oder WM_PALETTECHANGED-Nachricht erkennen oder sich darauf vorbereiten, eine Bildsequenz mithilfe der DrawDibDraw-Funktion anzuzeigen.

Sie können ein Bild zeichnen, das einer anderen Palette zugeordnet ist, indem Sie die Funktion DrawDibSetPalette verwenden. Diese Funktion erzwingt die DrawDib DC, die angegebene Palette zu verwenden, die sich auf die Bildqualität auswirken kann. Beispielsweise hat eine Anwendung, die palettenfähig ist, eine Palette realisiert und muss verhindern, dass DrawDib eine eigene Palette realisiert. Die Anwendung kann DrawDibSetPalette verwenden, um DrawDib der zu verwendenden Palette zu benachrichtigen.

Sie können ein Handle der aktuellen Vordergrundpalette mithilfe der DrawDibGetPalette-Funktion abrufen. Wenn Ihre Anwendung die aktuelle Vordergrundpalette verwendet, verfügt sie nicht über ausschließliche Verwendung der Palette und eine andere Anwendung kann den Palettenziehpunkt ungültig machen. Ihre Anwendung sollte die Palette nicht freistellen, wenn Sie die Verwendung abgeschlossen haben. Durch das Freigeben der Palette konnte der Palettenziehpunkt für eine andere Anwendung ungültig werden.

Sie können DrawDib vorbereiten, um neue Farbwerte für seine Palette zu erhalten, indem Sie die Funktion DrawDibChangePalette verwenden. Im code following DrawDibChangePalette, you assign new values for the palette color table. Wenn das DDF_ANIMATE Flag nicht im DrawDib DC festgelegt ist, wenn Sie DrawDibChangePalette aufrufen, können Sie die Palettenänderungen mithilfe von DrawDibRealize durchführen, um die Palette zu realisieren. Anschließend können Sie "DrawDibDraw " verwenden, um das Bild neu zu zeichnen. Wenn das DDF_ANIMATE Flag im DrawDib DC festgelegt ist, können Sie die Palette und die Farben der angezeigten Bitmap mithilfe von DrawDibDraw oder DrawDibRealize animieren. Sie können das DDF_ANIMATE Flag mithilfe der Funktionen DrawDibEnd und DrawDibBegin aktualisieren.

Hinweis

Wenn Sie die DrawDib-Palette freigeben, während sie von einem DC ausgewählt wird, kann ein GDI-Fehler (Grafikgeräteschnittstelle) dazu führen, wenn die DC die Palette verwendet. Stattdessen sollte Ihre Anwendung DrawDibSetPalette verwenden, um die DrawDib DC zu ändern, um die Standardpalette oder eine andere Palette zu verwenden.

 

Die Funktionen DrawDibEnd, DrawDibClose und DrawDibBegin können die DrawDib-Palette freigeben. Diese Funktionen sollten jedoch nur verwendet werden, wenn die Palette nicht vom DC ausgewählt wurde. Die DrawDibDraw-Funktion kann auch die Palette freigeben, wenn sie dasselbe DrawDib DC verwendet, aber verschiedene Zeichnungsparameter (lpbi, dxDst, dyDst, dxSrc oder dySrc) oder ein anderes Format angibt.

Bildrendering