Bagikan melalui


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 Makna
ICM_ON
Mengaktifkan manajemen warna. Menonaktifkan koreksi warna gaya lama dari halftones.
ICM_OFF
Menonaktifkan manajemen warna. Mengaktifkan koreksi warna gaya lama dari halftones.
ICM_QUERY
Mengkueri status manajemen warna saat ini.
ICM_DONE_OUTSIDEDC
Menonaktifkan manajemen warna di dalam DC. Di bawah Windows 2000, juga menonaktifkan koreksi warna gaya lama dari halftones. Tidak didukung di bawah Windows 95.

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

Lihat juga