Memóriaeszköz-környezetek
Ha engedélyezni szeretné, hogy az alkalmazások a kimenetet a memóriában helyezhessék el ahelyett, hogy egy tényleges eszközre küldenének, használjon egy speciális eszközkörnyezetet a memóriaeszköz-környezetneknevű bitképműveletekhez. A memória-tartományvezérlő lehetővé teszi, hogy a rendszer virtuális eszközként kezelje a memória egy részét. A memória bitjeinek tömbje, amellyel egy alkalmazás ideiglenesen tárolhatja a normál rajzfelületen létrehozott bitképek színadatait. Mivel a bitkép kompatibilis az eszközzel, a memória-tartományvezérlőt kompatibilis eszközkörnyezetnek is nevezik.
A memória tartományvezérlője egy adott eszköz bitképképét tárolja. Az alkalmazások a CreateCompatibleDC függvény meghívásával hozhatnak létre memória-tartományvezérlőt.
A memória-tartományvezérlő eredeti bitképe egyszerűen helyőrző. A méretei egy képponttal egy képponttal vannak eltitkosulva. Mielőtt egy alkalmazás elkezdené a rajzolást, ki kell jelölnie egy megfelelő szélességű és magasságú bitképet a DC-be a SelectObject függvény meghívásával. A megfelelő dimenziók bitképének létrehozásához használja a CreateBitmap, CreateBitmapIndirectvagy CreateCompatibleBitmap függvényt. Miután a bitkép be van jelölve a memória-tartományvezérlőbe, a rendszer lecseréli az egybites tömböt egy olyan nagy tömbre, amely elég nagy ahhoz, hogy a megadott képpont téglalap színadatait tárolja.
Amikor egy alkalmazás átadja a CreateCompatibleDC által visszaadott leírót az egyik rajzfüggvénynek, a kért kimenet nem jelenik meg az eszköz rajzfelületén. Ehelyett a rendszer a bittömbben tárolja az eredményül kapott vonal, görbe, szöveg vagy régió színadatait. Az alkalmazás visszamásolhatja a memóriában tárolt képet egy rajzfelületre a BitBlt függvény meghívásával, amely a memória-tartományvezérlőt a forráseszköz környezeteként azonosítja, valamint egy ablak- vagy képernyő-tartományvezérlőt céleszköz-környezetként.
Ha egy DIB-t vagy egy DIB-ből létrehozott DDB-t jelenít meg egy palettán, a rendszerkép rajzolásának sebességét javíthatja úgy, hogy a logikai palettát a rendszerkatalógus elrendezésének megfelelően rendezi. Ehhez hívja meg GetDeviceCaps a NUMRESERVED értékkel a fenntartott színek számának lekéréséhez a rendszerben. Ezután hívja meg GetSystemPaletteEntries, és töltse ki a logikai paletta első és utolsó NUMRESERVED/2 bejegyzését a megfelelő rendszerszínekkel. Ha például a NUMRESERVED értéke 20, akkor a logikai paletta első és utolsó 10 bejegyzését a rendszer színeivel kell kitöltenie. Ezután töltse ki a logikai paletta fennmaradó 256-NUMRESERVED színeit (a példánkban a fennmaradó 236 színt) a DIB színeivel, és állítsa be a PC_NOCOLLAPSE jelölőt mindegyik színre.
A színekkel és a palettával kapcsolatos további információkért lásd: Színek. A bitképekkel és a bitképműveletekkel kapcsolatos további információkért lásd Bitképekcímű témakört.