Konteks Perangkat
Konteks perangkat adalah struktur data Windows yang berisi informasi tentang atribut gambar perangkat seperti tampilan atau printer. Semua panggilan gambar dilakukan melalui objek konteks perangkat, yang merangkum API Windows untuk menggambar garis, bentuk, dan teks. Konteks perangkat memungkinkan gambar independen perangkat di Windows. Konteks perangkat dapat digunakan untuk menggambar ke layar, ke printer, atau ke metafile.
Objek CPaintDC merangkum idiom umum Windows, memanggil BeginPaint
fungsi, lalu menggambar dalam konteks perangkat, lalu memanggil EndPaint
fungsi. CPaintDC
Konstruktor memanggil BeginPaint
Anda, dan destruktor memanggil EndPaint
. Proses yang disederhanakan adalah membuat objek CDC , menggambar, lalu menghancurkan CDC
objek. Dalam kerangka kerja, sebagian besar bahkan proses ini otomatis. Secara khusus, fungsi Anda OnDraw
diteruskan yang CPaintDC
sudah disiapkan (melalui OnPrepareDC
), dan Anda cukup menggambarnya. Ini dihancurkan oleh kerangka kerja dan konteks perangkat yang mendasar dirilis ke Windows setelah kembali dari panggilan ke fungsi Anda OnDraw
.
Objek CClientDC merangkum bekerja dengan konteks perangkat yang hanya mewakili area klien jendela. CClientDC
Konstruktor memanggil GetDC
fungsi , dan destruktor memanggil ReleaseDC
fungsi . Objek CWindowDC merangkum konteks perangkat yang mewakili seluruh jendela, termasuk bingkainya.
Objek CMetaFileDC merangkum gambar ke dalam metafile Windows. Berbeda dengan yang CPaintDC
diteruskan ke OnDraw
, Anda harus dalam hal ini memanggil OnPrepareDC sendiri.
Gambar Mouse
Sebagian besar gambar dalam program kerangka kerja — dan dengan demikian sebagian besar pekerjaan konteks perangkat - dilakukan dalam fungsi anggota tampilan OnDraw
. Namun, Anda masih dapat menggunakan objek konteks perangkat untuk tujuan lain. Misalnya, untuk memberikan umpan balik pelacakan untuk gerakan mouse dalam tampilan, Anda perlu menggambar langsung ke tampilan tanpa menunggu OnDraw
untuk dipanggil.
Dalam kasus seperti itu, Anda dapat menggunakan objek konteks perangkat CClientDC untuk menggambar langsung ke tampilan.