Fungsi SetICMMode (wingdi.h)
Fungsi SetICMMode menyebabkan Manajemen Warna Gambar diaktifkan, dinonaktifkan, atau dikueri pada konteks perangkat (DC) tertentu.
Sintaks
int SetICMMode(
HDC hdc,
int mode
);
Parameter
hdc
Mengidentifikasi handel ke konteks perangkat.
mode
Mengaktifkan dan menonaktifkan manajemen warna gambar. Parameter ini dapat mengambil salah satu nilai konstanta berikut.
Nilai kembali
Jika fungsi ini berhasil, nilai yang dikembalikan adalah nilai bukan nol.
Jika fungsi ini gagal, nilai yang dikembalikan adalah nol.
Jika ICM_QUERY ditentukan dan fungsi berhasil, nilai bukan nol yang dikembalikan ICM_ON atau ICM_OFF untuk menunjukkan mode saat ini.
Keterangan
Jika sistem tidak dapat menemukan profil warna ICC agar sesuai dengan status perangkat, SetICMMode gagal dan mengembalikan nol.
Setelah WCS diaktifkan untuk konteks perangkat (DC), warna yang diteruskan ke DC menggunakan sebagian besar fungsi API Win32 cocok dengan warna. Pengecualian utama adalah BitBlt dan StretchBlt. Asumsinya adalah bahwa ketika melakukan transfer blok bit (blit) dari satu DC ke DC lainnya, kedua DC sudah kompatibel dan tidak memerlukan koreksi warna. Jika tidak demikian, koreksi warna dapat dilakukan. Secara khusus, jika bitmap independen perangkat (DIB) digunakan sebagai sumber untuk blit, dan blit dilakukan ke DC yang mengaktifkan WCS, pencocokan warna akan dilakukan. Jika ini bukan yang Anda inginkan, nonaktifkan WCS untuk DC tujuan dengan memanggil SetICMMode sebelum memanggil BitBlt atau StretchBlt.
Jika fungsi CreateCompatibleDC digunakan untuk membuat bitmap di DC, bitmap dapat dicocokkan dengan warna dua kali, sekali ketika dibuat dan sekali ketika blit dilakukan. Alasannya adalah bahwa bitmap dalam DC yang dibuat oleh fungsi CreateCompatibleDC memperoleh kuas, pena, dan palet DC sumber saat ini. Namun, WCS akan dinonaktifkan secara default untuk DC baru. Jika WCS kemudian diaktifkan untuk DC baru dengan menggunakan fungsi SetICMMode , koreksi warna akan dilakukan. Untuk mencegah koreksi warna ganda melalui penggunaan fungsi CreateCompatibleDC , gunakan fungsi SetICMMode untuk menonaktifkan WCS untuk DC sumber sebelum fungsi CreateCompatibleDC dipanggil.
Ketika DC yang kompatibel dibuat dari DC printer (lihat CreateCompatibleDC ), defaultnya adalah agar pencocokan warna selalu dilakukan jika diaktifkan untuk DC printer. Profil warna default untuk printer digunakan ketika blit dilakukan ke DC printer menggunakan SetDIBitsToDevice atau StretchDIBits. Jika ini bukan yang Anda inginkan, matikan WCS untuk DC printer dengan memanggil SetICMMode sebelum memanggil SetDIBitsToDevice atau StretchDIBits.
Selain itu, ketika mencetak ke DC printer dengan WCS diaktifkan, fungsi SetICMMode perlu dipanggil setelah setiap panggilan ke fungsi StartPage untuk menyalakan kembali WCS. Fungsi StartPage memanggil fungsi RestoreDC dan SaveDC , yang mengakibatkan WCS dimatikan untuk DC printer.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | wingdi.h |
Pustaka | Gdi32.lib |
DLL | Gdi32.dll |