調色板

DrawDib 函式需要應用程式回應兩個調色盤導向的訊息: WM_QUERYNEWPALETTEWM_PALETTECHANGED。 如果您的應用程式沒有調色盤感知,您必須為每個這些訊息新增處理常式。 如需處理 WM_QUERYNEWPALETTEWM_PALETTECHANGED 訊息的詳細資訊,請參閱 新增調色盤訊息處理常式

您可以使用 DrawDibRealize 函式,實現 DC 目前的 DrawDib 調色盤。 您應該瞭解調色盤以回應 WM_QUERYNEWPALETTEWM_PALETTECHANGED 訊息,或是當您準備使用 DrawDibDraw 函式顯示影像序列時。

您可以使用 DrawDibSetPalette 函式繪製對應至另一個調色盤的影像。 此函式會強制 DrawDib DC 使用指定的調色盤,這可能會影響影像品質。 例如,調色盤感知的應用程式可能已實現調色盤,而且需要防止 DrawDib 實現自己的調色盤。 應用程式可以使用 DrawDibSetPalette 通知 DrawDib 使用調色盤。

您可以使用 DrawDibGetPalette 函式來取得目前前景調色盤的控制碼。 如果您的應用程式使用目前的前景調色盤,它不會獨佔使用調色盤,而另一個應用程式可能會使調色盤控制碼失效。 當您完成使用時,您的應用程式不應該釋放調色盤。 釋放調色盤可能會使另一個應用程式的調色盤控制碼失效。

您可以使用 DrawDibChangePalette 函式,準備 DrawDib 以接收其調色盤的新色彩值。 在 DrawDibChangePalette之後的程式碼中,您會為調色盤色彩表指派新的值。 如果您在呼叫DrawDibChangePalette 時未在 DrawDib DC 中設定DDF_ANIMATE旗標,您可以使用DrawDibRealize來實現調色盤,來制定調色盤變更。 然後,您可以使用 DrawDibDraw 來重新繪製影像。 如果在 DrawDib DC 中設定 DDF_ANIMATE 旗標,您可以使用 DrawDibDrawDrawDibRealize,以動畫顯示調色盤和所顯示點陣圖的色彩。 您可以使用DrawDibEndDrawDibBegin函式來更新DDF_ANIMATE旗標。

注意

如果您在 DC 選取 DrawDib 調色盤時釋出 DrawDib 調色盤,當 DC 使用調色盤時,圖形裝置介面 (GDI) 錯誤可能會產生。 相反地,您的應用程式應該使用 DrawDibSetPalette 來變更 DrawDib DC,以使用預設調色盤或其他調色盤。

 

DrawDibEndDrawDibCloseDrawDibBegin函式可以釋放 DrawDib 調色盤。 不過,只有在 DC 尚未選取調色盤時,才應該使用這些函式。 DrawDibDraw 函式也可以在使用相同的 DrawDib DC 時釋放調色盤,但指定不同的繪圖參數 (lpbidxDst、dyDstdxSrcdySrc) 或不同的格式。

影像轉譯