Sdílet prostřednictvím


Kontexty zařízení pro zobrazení třídy

Pomocí kontextu zařízení třídy může aplikace použít jeden kontext zařízení pro zobrazení pro každé okno patřící do zadané třídy. Kontexty zařízení třídy se často používají s ovládacími okny, která se nakreslují pomocí stejných hodnot atributů. Podobně jako kontexty privátních zařízení kontexty třídy minimalizují dobu potřebnou k přípravě kontextu zařízení na kreslení.

Systém poskytuje kontext zařízení třídy pro okno, pokud patří do třídy okna s CS_CLASSDC stylem. Systém vytvoří kontext zařízení při vytváření prvního okna patřícího do třídy a pak použije stejný kontext zařízení pro všechna následně vytvořená okna ve třídě. Kontext zařízení třídy má zpočátku stejné výchozí hodnoty pro atributy jako běžný kontext zařízení, ale aplikace je může kdykoli upravit. Systém zachová všechny změny s výjimkou oblasti výřezu a původu zařízení, dokud se nezničí poslední okno třídy. Změna provedená pro jedno okno platí pro všechna okna v této třídě.

Aplikace může načíst popisovač kontextu zařízení třídy pomocí funkce GetDC kdykoli po vytvoření prvního okna. Aplikace může popisovač zachovat a používat bez uvolnění, protože kontext zařízení třídy není součástí mezipaměti kontextu zobrazení zařízení. Pokud aplikace vytvoří ve stejné třídě okna další okno, musí aplikace znovu načíst kontext zařízení třídy. Načtení kontextu zařízení nastaví správný původ zařízení a oblast výřezu pro nové okno. Jakmile aplikace načte kontext zařízení třídy pro nové okno třídy, kontext zařízení se už nedá použít k kreslení v původním okně bez opětovného načtení pro toto okno. Obecně platí, že pokaždé, když musí kreslit v okně, musí aplikace explicitně načíst kontext zařízení třídy pro okno.

Aplikace, které používají kontexty zařízení třídy, by měly při zpracování WM_PAINT zprávyvždy volatBeginPaint. Funkce nastaví správný původ zařízení a oblast výřezu okna a zahrne oblast aktualizace. Aplikace by také měla volat EndPaint obnovit stříšku, pokud ji BeginPaint skryl. EndPaint nemá žádný jiný vliv na kontext zařízení třídy.

Systém předává kontext zařízení třídy při odesílání WM_ERASEBKGND zprávy do aplikace, což umožňuje aktuální hodnoty atributů ovlivnit všechny výkresy prováděné aplikací nebo systémem při zpracování této zprávy. Vzhledem k tomu, že okno má kontext privátního zařízení, může aplikace použít GetDCEx vynutit, aby systém vrátil společný kontext zařízení pro okno, které má kontext zařízení třídy.

Použití kontextu zařízení třídy se nedoporučuje.