Sdílet prostřednictvím


Kontexty zařízení

Kontext zařízení je datová struktura Systému Windows obsahující informace o atributech výkresu zařízení, jako je zobrazení nebo tiskárna. Všechna volání výkresu se provádějí prostřednictvím objektu kontextu zařízení, který zapouzdřuje rozhraní API systému Windows pro kreslení čar, obrazců a textu. Kontexty zařízení umožňují výkres nezávislý na zařízení ve Windows. Kontexty zařízení lze použít k kreslení na obrazovku, do tiskárny nebo do metasouboru.

C Malování DC objekty zapouzdřují společný idiom Systému Windows, volání BeginPaint funkce, pak kreslení v kontextu zařízení a následné volání EndPaint funkce. Konstruktor CPaintDC BeginPaint volá za vás a destruktor volání EndPaint. Zjednodušeným procesem je vytvoření objektu CDC , vykreslení a následné zničení objektu CDC . V rámci je většina tohoto procesu automatizovaná. Konkrétně je vaše OnDraw funkce předána již připravená CPaintDC (prostřednictvím OnPrepareDC) a jednoduše do ní nakreslíte. Zničí se architekturou a základní kontext zařízení se uvolní do Windows po návratu z volání vaší OnDraw funkce.

Objekty CClientDC zapouzdřují práci s kontextem zařízení, který představuje pouze klientskou oblast okna. Konstruktor CClientDC volá GetDC funkci a destruktor volá ReleaseDC funkci. Objekty CWindowDC zapouzdřují kontext zařízení, který představuje celé okno, včetně jeho rámce.

CMetaFileDC objekty zapouzdřují výkres do metasouboru Windows. Na rozdíl od CPaintDC předání OnDraw, musíte v tomto případě volat OnPrepareDC sami.

Kreslení myší

Většina výkresů v rámci programu ( a tedy většina práce v kontextu zařízení ) se provádí v členské funkci zobrazení OnDraw . Objekty kontextu zařízení ale můžete používat i pro jiné účely. Pokud chcete například poskytnout zpětnou vazbu ke sledování pohybu myši v zobrazení, musíte nakreslit přímo do zobrazení, aniž byste čekali na OnDraw zavolání.

V takovém případě můžete pomocí objektu kontextu zařízení CClientDC nakreslit přímo do zobrazení.

O čem chcete vědět víc

Viz také

Objekty oken