Eszközkörnyezetek megjelenítése
Az alkalmazások a BeginPaint, GetDCvagy GetDCEx függvény meghívásával szereznek be egy megjelenítési tartományvezérlőt, és azonosítják azt az ablakot, amelyben a megfelelő kimenet megjelenik. Az alkalmazások általában csak akkor szereznek be megjelenítési tartományvezérlőt, ha az ügyfélterületen kell rajzolnia. A GetWindowDC függvény meghívásával azonban beszerezhet egy ablakos eszközkörnyezetet. Ha az alkalmazás elkészült a rajzolással, a tartományvezérlőt a EndPaint vagy ReleaseDC függvény meghívásával kell felszabadítania.
A videobemutatókhoz ötféle tartományvezérlő használható:
- Osztály
- Közös
- Privát
- Ablak
- Szülő
Osztályeszköz-környezetek
osztályeszköz-környezetek szigorúan támogatottak a Windows 16 bites verzióival való kompatibilitás érdekében. Az alkalmazás írásakor kerülje az osztályeszköz környezetének használatát; használjon inkább egy privát eszközkörnyezetet.
Gyakori eszközkörnyezetek
gyakori eszközkörnyezetek a rendszer által fenntartott speciális gyorsítótárban tárolt tartományvezérlőket jelenítik meg. A gyakran használt eszközkörnyezetek olyan alkalmazásokban használatosak, amelyek ritkán végeznek rajzműveleteket. Mielőtt a rendszer visszaadja a tartományvezérlő leíróját, inicializálja a közös eszközkörnyezetet alapértelmezett objektumokkal, attribútumokkal és módokkal. Az alkalmazás által végrehajtott rajzműveletek ezeket az alapértelmezett értékeket használják, kivéve, ha a GDI-függvények egyikét meghívják egy új objektum kiválasztására, egy meglévő objektum attribútumainak módosítására vagy új mód kiválasztására.
Mivel csak korlátozott számú gyakori eszközkörnyezet létezik, az alkalmazásoknak a rajz befejezése után fel kell szabadítanuk őket. Amikor az alkalmazás kiad egy általános eszközkörnyezetet, az alapértelmezett adatok módosításai elvesznek.
Privát eszközkörnyezetek
privát eszközkörnyezetek olyan tartományvezérlők jelennek meg, amelyek a gyakori eszközkörnyezetekkel ellentétben még az alkalmazások kiadása után is megőrzik az alapértelmezett adatok módosításait. A magáneszköz-környezeteket olyan alkalmazásokban használják, amelyek számos rajzműveletet hajtanak végre, például számítógéppel támogatott tervezési (CAD-) alkalmazásokat, asztali közzétételi alkalmazásokat, rajz- és festési alkalmazásokat stb. A magáneszköz-környezetek nem részei a rendszer gyorsítótárának, ezért használat után nem kell kiadni. A rendszer automatikusan eltávolít egy privát eszközkörnyezetet az osztály utolsó ablakának megsemmisítése után.
Az alkalmazások a WNDCLASS struktúrájának stílusának inicializálásakor először megadják a CS_OWNDC ablakosztály stílusát, és meghívják a RegisterClass függvényt. (További információ az ablakosztályokról: Ablakosztályok.)
Miután létrehozott egy CS_OWNDC stílusú ablakot, az alkalmazások meghívhatják a GetDC, GetDCExvagy BeginPaint függvényt, hogy egy privát eszközkörnyezetet azonosító leírót szerezzenek be. Az alkalmazás addig használhatja ezt a leírót (és a hozzá tartozó tartományvezérlőt), amíg az ezzel az osztálysal létrehozott ablakot nem törli. A rendszer az ablak törléséig megőrzi a grafikus objektumok és attribútumaik vagy grafikus módjaik módosításait.
Ablakeszköz-környezetek
A ablakos eszközkörnyezet lehetővé teszi, hogy az alkalmazás bárhol rajzoljon az ablakban, beleértve a nem akkient területet is. Az ablakeszköz-környezeteket általában olyan alkalmazások használják, amelyek feldolgozzák a WM_NCPAINT és WM_NCACTIVATE üzeneteket az egyéni nem aktív területekkel rendelkező ablakokhoz. Az ablakos eszközkörnyezet használata más célra nem ajánlott. További információkért; lásd: GetWindowDC.
Szülőeszköz-környezetek
A szülőeszköz-környezet lehetővé teszi, hogy az alkalmazás minimálisra csökkentse az ablak kivágási régiójának beállításához szükséges időt. Az alkalmazások általában szülőeszköz-környezeteket használnak a vezérlőablakok rajzolásához anélkül, hogy magán- vagy osztályeszköz-környezetre van szükség. A rendszer például szülőeszköz-környezeteket használ a leküldéses és szerkesztési vezérlőkhöz. A szülőeszköz-környezetek csak gyermekablakokkal használhatók, felső vagy előugró ablakokkal soha. További információkért; lásd: szülőmegjelenítési eszközkörnyezetek.