Tampilkan Konteks Perangkat

Aplikasi mendapatkan DC tampilan dengan memanggil fungsi BeginPaint, GetDC, atau GetDCEx dan mengidentifikasi jendela tempat output yang sesuai akan muncul. Biasanya, aplikasi mendapatkan DC tampilan hanya ketika harus menggambar di area klien. Namun, seseorang dapat memperoleh konteks perangkat jendela dengan memanggil fungsi GetWindowDC . Ketika aplikasi selesai menggambar, aplikasi harus merilis DC dengan memanggil fungsi EndPaint atau ReleaseDC .

Ada lima jenis DC untuk tampilan video:

  • Kelas
  • Common
  • Privat
  • Jendela
  • Parent

Konteks Perangkat Kelas

Konteks perangkat kelas didukung secara ketat untuk kompatibilitas dengan Windows versi 16-bit. Saat menulis aplikasi Anda, hindari menggunakan konteks perangkat kelas; gunakan konteks perangkat privat sebagai gantinya.

Konteks Perangkat Umum

Konteks perangkat umum adalah DC tampilan yang dipertahankan dalam cache khusus oleh sistem. Konteks perangkat umum digunakan dalam aplikasi yang melakukan operasi gambar yang jarang terjadi. Sebelum sistem mengembalikan handel DC, sistem menginisialisasi konteks perangkat umum dengan objek, atribut, dan mode default. Setiap operasi gambar yang dilakukan oleh aplikasi menggunakan default ini kecuali salah satu fungsi GDI dipanggil untuk memilih objek baru, mengubah atribut objek yang ada, atau memilih mode baru.

Karena hanya ada sejumlah konteks perangkat umum yang terbatas, aplikasi harus merilisnya setelah selesai menggambar. Saat aplikasi merilis konteks perangkat umum, setiap perubahan pada data default akan hilang.

Konteks Perangkat Privat

Konteks perangkat privat adalah DC tampilan yang, tidak seperti konteks perangkat umum, mempertahankan perubahan apa pun pada data default bahkan setelah aplikasi merilisnya. Konteks perangkat privat digunakan dalam aplikasi yang melakukan banyak operasi gambar seperti aplikasi desain yang dibantu komputer (CAD), aplikasi penerbitan desktop, aplikasi menggambar dan melukis, dan sebagainya. Konteks perangkat privat bukan bagian dari cache sistem dan oleh karena itu tidak perlu dirilis setelah digunakan. Sistem secara otomatis menghapus konteks perangkat privat setelah jendela terakhir kelas tersebut dihancurkan.

Aplikasi membuat konteks perangkat privat dengan terlebih dahulu menentukan gaya kelas jendela CS_OWNDC saat menginisialisasi anggota gaya struktur WNDCLASS dan memanggil fungsi RegisterClass . (Untuk informasi selengkapnya tentang kelas jendela, lihat Kelas Jendela.)

Setelah membuat jendela dengan gaya CS_OWNDC, aplikasi dapat memanggil fungsi GetDC, GetDCEx, atau BeginPaint sekali untuk mendapatkan handel yang mengidentifikasi konteks perangkat privat. Aplikasi dapat terus menggunakan handel ini (dan DC terkait) hingga menghapus jendela yang dibuat dengan kelas ini. Setiap perubahan pada objek grafik dan atributnya, atau mode grafik dipertahankan oleh sistem hingga jendela dihapus.

Konteks Perangkat Jendela

Konteks perangkat jendela memungkinkan aplikasi untuk menggambar di mana saja di jendela, termasuk area nonkelola. Konteks perangkat jendela biasanya digunakan oleh aplikasi yang memproses pesan WM_NCPAINT dan WM_NCACTIVATE untuk jendela dengan area nonkelola kustom. Menggunakan konteks perangkat jendela tidak disarankan untuk tujuan lain. Untuk informasi lebih lanjut; lihat GetWindowDC.

Konteks Perangkat Induk

Konteks perangkat induk memungkinkan aplikasi untuk meminimalkan waktu yang diperlukan untuk menyiapkan wilayah kliping untuk jendela. Aplikasi biasanya menggunakan konteks perangkat induk untuk mempercepat menggambar jendela kontrol tanpa memerlukan konteks perangkat privat atau kelas. Misalnya, sistem menggunakan konteks perangkat induk untuk tombol dorong dan edit kontrol. Konteks perangkat induk dimaksudkan untuk digunakan hanya dengan jendela anak, tidak pernah dengan jendela tingkat atas atau pop-up. Untuk informasi lebih lanjut; lihat Konteks Perangkat Tampilan Induk.