Elaborazione del messaggio WM_DRAWITEM

Una casella combinata invia il messaggio WM_DRAWITEM al proprio interno padre finestra o finestra di dialogo casella ogni volta che l'applicazione deve ridisegnare una voce di elenco. Il parametro lParam punta a una struttura DRAWITEMSTRUCT che identifica l'elemento di controllo e di elenco. Esso contiene anche informazioni necessarie a dipingere l'elemento.

L'esempio nella creazione di una finestra di dialogo piazza pasto Visualizza il testo della voce di elenco e l'immagine bitmap associata al gruppo alimentare. Se la voce ha lo stato attivo, anche disegna un rettangolo di attivazione. Prima di visualizzare il testo, l'esempio imposta i colori di primo piano e sfondo, basati sull'elemento selezionato. Perché la casella combinata ha lo stile CBS_HASSTRINGS, casella combinata mantiene il testo per ciascuna voce di elenco che può essere recuperato utilizzando il messaggio di CB_GETLBTEXT.

Le bitmap utilizzate per l'elemento dell'elenco dipendono il gruppo alimentare. InitGroupListviene utilizzato il messaggio CB_SETITEMDATA per associare una costante di ogni voce dell'elenco, identificando il gruppo alimentare corrispondente. La routine della finestra utilizza questo valore, contenuto nel membro della struttura DRAWITEMSTRUCT , itemData per determinare quali bitmap per visualizzare. Il sistema utilizza due bitmap per ciascun simbolo del gruppo alimentare: una bitmap monocromatica con l'operazione raster SRCAND per cancellare la regione irregolare dietro l'immagine e una bitmap a colori con l'operazione raster SRCPAINT per disegnare l'immagine.