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í.