Contextul dispozitivului este o structură de date Windows care conține informații despre atributele dispozitivelor de desen, cum ar fi un afișaj sau o imprimantă. Toate desenele completate utilizând un obiect context de dispozitiv care încapsulează API-ul Windows pentru a desena linii, forme și text. Contextul dispozitivului este independent pe care îl puteți crea în Windows. Contextele dispozitivului pot fi utilizate pentru desen pe ecran, pe o imprimantă sau într-un metasou.
Obiectele CPaintDC care încapsulează genericul sunt Windows, când apelează funcția BeginPaint. apoi desenarea în contextul dispozitivului, apoi apelarea funcției EndPaint. Constructorul cere BeginPaint``CPaintDC automat și îl sună pe EndPaint destructor. Proces simplificat de creare a unui obiect CDC. va fi construit și apoi va șterge obiectul CDC. În platformă, mulți chiar și acest proces este automatizat. În special, astfel încât funcționalitatea OnDraw să fie transferată deja pregătită CPaintDC (cu OnPrepareDC), și trebuie doar să fie descris în ea. Acesta este distrus de platformă, iar contextul principal al dispozitivului este lansat în Windows când se întoarce din apelul funcției OnDraw.
Obiectele CClientDC încapsulează lucrul cu contextul dispozitivului, care reprezintă doar zona de client a ferestrei. Constructorul CDCientDC apelează funcția GetDC și distrugătorul apelează funcția ReleaseDC. Obiectele CWindowDC încorporează un context de dispozitiv care reprezintă toate ferestrele, inclusiv cadrul său.
Obiectele CMetaFileDC încadrează desenul în metafilele Windows. Spre deosebire de CPaintDC. trecut la OnDraw. Cu datele în acest caz, trebuie să apelați metoda OnPrepareDC.
Cele mai multe dintre ele creează în program o structură și, prin urmare, toate lucrările din contextul dispozitivului - aceasta se face în funcția membră a transmiterii OnDraw. Cu toate acestea, puteți utiliza obiectele contextuale ale dispozitivului pentru alte scopuri. De exemplu, pentru a furniza un răspuns de urmărire pentru mutarea unui mouse într-o vizualizare, trebuie să îl desenați direct în vizualizare fără a aștepta OnDraw. prin numire.
În acest caz, puteți utiliza obiectul context al dispozitivului CClientDC pentru a fi tras direct în vizualizare.