Tavolozze

Le funzioni DrawDib richiedono che un'applicazione risponda a due messaggi orientati alla tavolozza: WM _ QUERYNEWPALETTE e WM _ PALETTECHANGED. Se l'applicazione non è compatibile con le tavolozze, sarà necessario aggiungere un gestore per ognuno di questi messaggi. Per ulteriori informazioni sull'elaborazione dei messaggi WM _ QUERYNEWPALETTE e WM _ PALETTECHANGED , vedere aggiunta di gestori di messaggi tavolozza.

È possibile realizzare la tavolozza DrawDib corrente per il controller di dominio usando la funzione DrawDibRealize . È necessario realizzare la tavolozza in risposta al messaggio WM _ QUERYNEWPALETTE o WM _ PALETTECHANGED oppure quando si prepara la visualizzazione di una sequenza di immagini tramite la funzione DrawDibDraw .

È possibile creare un'immagine mappata a un'altra tavolozza usando la funzione DrawDibSetPalette . Questa funzione forza il controller di dominio DrawDib a usare la tavolozza specificata, che può influire sulla qualità dell'immagine. Ad esempio, un'applicazione che è in grado di riconoscere la tavolozza potrebbe avere realizzato una tavolozza ed è necessario impedire a DrawDib di realizzare la propria tavolozza. L'applicazione può usare DrawDibSetPalette per notificare a DrawDib la tavolozza da usare.

È possibile ottenere un handle della tavolozza di primo piano corrente usando la funzione DrawDibGetPalette . Se l'applicazione usa la tavolozza di primo piano corrente, non ha un utilizzo esclusivo della tavolozza e un'altra applicazione può invalidare l'handle della tavolozza. Quando si termina l'uso, l'applicazione non deve liberare la tavolozza. La possibilità di liberare la tavolozza potrebbe invalidare l'handle della tavolozza per un'altra applicazione.

È possibile preparare DrawDib per ricevere nuovi valori di colore per la tavolozza usando la funzione DrawDibChangePalette . Nel codice seguente DrawDibChangePalette vengono assegnati nuovi valori per la tabella dei colori della tavolozza. Se il flag DDF _ animate non è impostato nel controller di dominio DrawDib quando si chiama DrawDibChangePalette, è possibile applicare le modifiche della tavolozza usando DrawDibRealize per realizzare la tavolozza. È quindi possibile usare DrawDibDraw per ricreare l'immagine. Se nel controller di dominio DrawDib è impostato il flag DDF _ animate , è possibile animare la tavolozza e i colori della bitmap visualizzata utilizzando DrawDibDraw o DrawDibRealize. È possibile aggiornare il flag DDF _ animate usando le funzioni DrawDibEnd e DrawDibBegin .

Nota

Se si libera la tavolozza DrawDib mentre è selezionata da un controller di dominio, è possibile che venga generato un errore GDI (Graphics Device Interface) quando il controller di dominio usa la tavolozza. Al contrario, l'applicazione deve usare DrawDibSetPalette per modificare il controller di dominio DrawDib per usare la tavolozza predefinita o un'altra tavolozza.

 

Le funzioni DrawDibEnd, DrawDibClosee DrawDibBegin possono liberare la tavolozza DrawDib. Queste funzioni, tuttavia, devono essere utilizzate solo quando la tavolozza non è stata selezionata dal controller di dominio. La funzione DrawDibDraw può anche liberare la tavolozza quando usa lo stesso controller di dominio DrawDib, ma specifica parametri di disegno diversi (lpbi, dxDst, dyDst, dxSrc o dySrc) o un formato diverso.

Rendering di immagini