Funzione SetICMMode (wingdi.h)
La funzione SetICMMode causa l'abilitazione, la disabilitazione o la query di Gestione colori immagine in un determinato contesto del dispositivo (DC).
Sintassi
int SetICMMode(
HDC hdc,
int mode
);
Parametri
hdc
Identifica handle nel contesto del dispositivo.
mode
Attiva e disattiva la gestione dei colori delle immagini. Questo parametro può accettare uno dei valori costanti seguenti.
Valore restituito
Se questa funzione ha esito positivo, il valore restituito è un valore diverso da zero.
Se questa funzione ha esito negativo, il valore restituito è zero.
Se viene specificato ICM_QUERY e la funzione ha esito positivo, il valore non zero restituito viene ICM_ON o ICM_OFF per indicare la modalità corrente.
Commenti
Se il sistema non riesce a trovare un profilo di colore ICC per corrispondere allo stato del dispositivo, SetICMMode ha esito negativo e restituisce zero.
Dopo aver abilitato WCS per un contesto di dispositivo (DC), i colori passati al controller di dominio usando la maggior parte delle funzioni API Win32 sono corrispondenti al colore. Le eccezioni principali sono BitBlt e StretchBlt. Il presupposto è che quando si esegue un trasferimento a blocchi di bit (blit) da un controller di dominio a un altro, i due controller di dominio sono già compatibili e non hanno bisogno di correzione dei colori. Se questo non è il caso, la correzione del colore può essere eseguita. In particolare, se viene usata una bitmap indipendente dal dispositivo (DIB) come origine per un blit e la barra blit viene eseguita in un controller di dominio abilitato, verrà eseguita la corrispondenza dei colori. Se non si vuole, disattivare WCS per il controller di dominio di destinazione chiamando SetICMMode prima di chiamare BitBlt o StretchBlt.
Se la funzione CreateCompatibleDC viene usata per creare una bitmap in un controller di dominio, è possibile che la bitmap corrisponda due volte, una volta quando viene creata e una volta quando viene eseguita una blit. Il motivo è che una bitmap in un controller di dominio creato dalla funzione CreateCompatibleDC acquisisce il pennello, la penna e la tavolozza correnti del controller di dominio di origine. Tuttavia, WCS verrà disabilitato per impostazione predefinita per il nuovo controller di dominio. Se WCS è abilitato successivamente per il nuovo controller di dominio usando la funzione SetICMMode , verrà eseguita una correzione del colore. Per evitare la doppia correzione dei colori tramite l'uso della funzione CreateCompatibleDC , usare la funzione SetICMMode per disattivare WCS per il controller di dominio di origine prima che venga chiamata la funzione CreateCompatibleDC .
Quando un controller di dominio compatibile viene creato dal controller di dominio di una stampante (vedere CreateCompatibleDC ), il valore predefinito è per la corrispondenza dei colori da eseguire sempre se è abilitato per il controller di dominio della stampante. Il profilo di colore predefinito per la stampante viene usato quando viene eseguito un blit nel controller di dominio della stampante usando SetDIBitsToDevice o StretchDIBits. Se non si vuole, disattivare WCS per il controller di dominio della stampante chiamando SetICMMode prima di chiamare SetDIBitsToDevice o StretchDIBits.
Inoltre, quando si stampa in un controller di dominio della stampante con WCS attivato, la funzione SetICMMode deve essere chiamata dopo ogni chiamata alla funzione StartPage per riattivare WCS. La funzione StartPage chiama le funzioni RestoreDC e SaveDC, che comportano la disattivazione del servizio WCS per il controller di dominio della stampante.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | wingdi.h |
Libreria | Gdi32.lib |
DLL | Gdi32.dll |