Megosztás a következőn keresztül:


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.