Paletták
[A laphoz társított funkció, DrawDibegy régi funkció. A MediaComposition osztályfelülírta. MediaComposition osztály Windows 10-hez és Windows 11-hez lett optimalizálva. A Microsoft határozottan javasolja, hogy az új kód MediaComposition osztályt használjonDrawDibhelyett, ha lehetséges. A Microsoft javasolja, hogy az örökölt API-kat használó meglévő kódot át kell írni az új API-k használatára, ha lehetséges.]
A DrawDib függvényekhez az alkalmazásnak két palettaorientált üzenetre kell válaszolnia: WM_QUERYNEWPALETTE és WM_PALETTECHANGED. Ha az alkalmazás nem palettaérzékeny, minden egyes üzenethez hozzá kell adnia egy kezelőt. A WM_QUERYNEWPALETTE és WM_PALETTECHANGED üzenetek feldolgozásával kapcsolatos további információkért lásd Palettás üzenetkezelők hozzáadásacímű témakört.
Az aktuális DrawDib-palettát a tartományvezérlőn a DrawDibRealize függvény használatával valósíthatja meg. A palettát a WM_QUERYNEWPALETTE vagy WM_PALETTECHANGED üzenetre válaszul kell felismernie, vagy amikor a DrawDibDraw függvénnyel előkészíti a képsorozat megjelenítését.
A DrawDibSetPalette függvénnyel egy másik palettára leképezett képet rajzolhat. Ez a függvény arra kényszeríti a DrawDib DC-t, hogy használja a megadott palettát, ami befolyásolhatja a kép minőségét. Előfordulhat például, hogy egy palettaérzékeny alkalmazás felismert egy palettát, és meg kell akadályoznia, hogy a DrawDib saját palettát valósítson meg. Az alkalmazás DrawDibSetPalette használatával értesítheti a DrawDibt a használni kívánt palettáról.
Az aktuális előtérpaletta leíróját a DrawDibGetPalette függvénnyel szerezheti be. Ha az alkalmazás az aktuális előtérpalettát használja, nem kizárólagosan használja a palettát, és egy másik alkalmazás érvénytelenítheti a palettaleírót. Az alkalmazás nem szabadíthatja fel a palettát a használat befejezésekor. A paletta felszabadítása érvénytelenné teheti egy másik alkalmazás palettáját.
A DrawDib a DrawDibChangePalette függvénnyel előkészítheti, hogy új színértékeket fogadjon a palettához. A DrawDibChangePalettekövetkező kódban új értékeket rendel a paletta színtáblájához. Ha DrawDibChangePalettehívásakor a DDF_ANIMATE jelölő nincs beállítva a DrawDib tartományvezérlőn, a palettát a DrawDibRealize használatával hajthatja végre a palettán. Ezután a DrawDibDraw használatával újrarajzolhatja a képet. Ha a DDF_ANIMATE jelző a DrawDib DC-ben van beállítva, animálhatja a palettát és a megjelenített bitkép színeit DrawDibDraw vagy DrawDibRealizehasználatával. A DDF_ANIMATE jelzőt a DrawDibEnd és DrawDibBegin függvény használatával frissítheti.
Jegyzet
Ha felszabadítja a DrawDib-palettát, miközben egy tartományvezérlő kiválasztja, a grafikus eszköz felületének (GDI) hibája akkor fordulhat elő, ha a tartományvezérlő a palettát használja. Ehelyett az alkalmazásnak DrawDibSetPalette kell használnia, hogy módosítsa a DrawDib DC-t az alapértelmezett palettára vagy egy másik palettára.
A DrawDibEnd, DrawDibCloseés DrawDibBegin függvények felszabadíthatják a DrawDib palettát. Ezek a függvények azonban csak akkor használhatók, ha a tartományvezérlő nem választotta ki a palettát. A DrawDibDraw függvény akkor is felszabadíthatja a palettát, ha ugyanazt a DrawDib DC-t használja, de különböző rajzparamétereket (lpbi, dxDst, dyDst, dxSrcvagy dySrc) vagy más formátumot határoz meg.
Kapcsolódó témakörök