Zobrazení kontextu zařízení
Aplikace získá řadič domény zobrazení voláním BeginPaint, GetDCnebo GetDCEx funkce a určení okna, ve kterém se zobrazí odpovídající výstup. Aplikace obvykle získá řadič domény zobrazení pouze v případě, že musí kreslit v klientské oblasti. Můžete ale získat kontext okna voláním funkce GetWindowDC. Po dokončení výkresu aplikace musí řadič domény uvolnit voláním funkce EndPaint nebo ReleaseDC.
K dispozici je pět typů řadičů domény pro zobrazení videa:
- Třída
- Společný
- Soukromý
- Okno
- Rodič
Kontexty zařízení třídy
kontexty zařízení třídy jsou podporovány výhradně kvůli kompatibilitě s 16bitovými verzemi Windows. Při psaní aplikace nepoužívejte kontext zařízení třídy; místo toho použijte kontext privátního zařízení.
Běžné kontexty zařízení
běžné kontexty zařízení zobrazují řadiče domény udržované ve speciální mezipaměti systémem. Běžné kontexty zařízení se používají v aplikacích, které provádějí občasné operace kreslení. Než systém vrátí popisovač řadiče domény, inicializuje společný kontext zařízení s výchozími objekty, atributy a režimy. Všechny operace kreslení prováděné aplikací používají tyto výchozí hodnoty, pokud není volána jedna z funkcí GDI k výběru nového objektu, změně atributů existujícího objektu nebo výběru nového režimu.
Vzhledem k tomu, že existuje pouze omezený počet běžných kontextů zařízení, měla by je aplikace po dokončení výkresu uvolnit. Když aplikace uvolní společný kontext zařízení, dojde ke ztrátě všech změn výchozích dat.
Kontexty privátního zařízení
kontexty privátních zařízení zobrazují řadiče domény, které na rozdíl od běžných kontextů zařízení zachovají všechny změny výchozích dat i po jejich vydání aplikací. Kontexty soukromých zařízení se používají v aplikacích, které provádějí řadu operací kreslení, jako jsou aplikace CAD (computer-aided design), desktopové aplikace pro publikování, kreslení a malování aplikací atd. Kontexty privátního zařízení nejsou součástí systémové mezipaměti, a proto je po použití není potřeba uvolnit. Systém automaticky odebere kontext privátního zařízení po zničení posledního okna této třídy.
Aplikace vytvoří kontext privátního zařízení tak, že nejprve zadá styl třídy okna CS_OWNDC při inicializaci stylu člen struktury WNDCLASS a zavolá funkci RegisterClass. (Další informace o třídách oken naleznete v tématu Třídy oken.)
Po vytvoření okna se stylem CS_OWNDC může aplikace volat funkci GetDC, GetDCExnebo BeginPaint jednou získat popisovač identifikující kontext privátního zařízení. Aplikace může pokračovat v používání tohoto popisovače (a přidruženého řadiče domény), dokud neodstraní okno vytvořené s touto třídou. Všechny změny grafických objektů a jejich atributů nebo grafické režimy se zachovají systémem, dokud se okno nesmaže.
Kontexty zařízení okna
Kontext zařízení okna umožňuje aplikaci kreslit kdekoli v okně, včetně oblasti bez klienta. Kontexty zařízení s okny obvykle používají aplikace, které zpracovávají WM_NCPAINT a WM_NCACTIVATE zprávy pro windows s vlastními oblastmi, které nejsou klienty. Použití kontextu zařízení s oknem se nedoporučuje pro žádný jiný účel. Další informace; viz GetWindowDC.
Kontexty nadřazeného zařízení
Kontext nadřazeného zařízení umožňuje aplikaci minimalizovat čas potřebný k nastavení oblasti výřezu pro okno. Aplikace obvykle používá kontexty nadřazeného zařízení k urychlení kreslení ovládacích oken bez nutnosti soukromého kontextu zařízení nebo kontextu zařízení třídy. Systém například používá kontexty nadřazeného zařízení pro stisknutí tlačítka a úpravy ovládacích prvků. Kontexty nadřazeného zařízení jsou určeny pouze pro podřízená okna, nikdy s hlavními nebo automaticky otevíranými okny. Další informace; viz kontexty nadřazeného zobrazení zařízení.