Caselle combinate dal proprietario

Un'applicazione può creare una casella combinata creata dal proprietario ad assumersi la responsabilità per la pittura gli elementi dell'elenco. La casella di finestra o finestra di dialogo del genitore di una casella combinata (suo proprietario) riceve messaggi WM_DRAWITEM quando una porzione della casella combinata deve essere verniciato. Una casella combinata può elencare informazioni diverso da, o in aggiunta a stringhe di testo. Caselle combinate dal proprietario possono essere di qualsiasi tipo. Tuttavia, il controllo di modifica in una casella combinata semplice o discesa solo può visualizzare testo, mentre il proprietario dipinge il campo di selezione in una casella di riepilogo a discesa.

Il proprietario di una casella combinata deve elaborare il messaggio WM_DRAWITEM. Questo messaggio viene inviato ogni volta che una porzione della casella combinata deve essere ridisegnata. Il proprietario può essere necessario elaborare altri messaggi, a seconda degli stili specificati per la casella combinata.

Un'applicazione può creare una casella combinata specificando lo stile CBS_OWNERDRAWFIXED o CBS_OWNERDRAWVARIABLE. Se tutti gli elementi dell'elenco della casella combinata sono la stessa altezza, ad esempio stringhe o icone, un'applicazione può utilizzare lo stile CBS_OWNERDRAWFIXED. Se gli elementi dell'elenco di altezza variabile, le bitmap di diverse dimensioni, ad esempio, un'applicazione può utilizzare lo stile CBS_OWNERDRAWVARIABLE.

Il proprietario di una casella combinata in grado di elaborare un messaggio WM_MEASUREITEM per specificare le dimensioni degli elementi di elenco nella casella combinata. Se l'applicazione crea casella combinata utilizzando lo stile CBS_OWNERDRAWFIXED, il sistema invia il messaggio WM_MEASUREITEM solo una volta. Le dimensioni specificate dal proprietario sono utilizzate per tutti gli elementi dell'elenco. Se viene utilizzato lo stile CBS_OWNERDRAWVARIABLE, il sistema invia un messaggio a WM_MEASUREITEM per ogni elemento della lista aggiunto alla casella combinata. Il proprietario può determinare o impostare l'altezza di un elemento dell'elenco in qualsiasi momento utilizzando i messaggi CB_GETITEMHEIGHT e CB_SETITEMHEIGHT , rispettivamente.

Se le informazioni visualizzate in una casella combinata includono testo, un'applicazione può tenere traccia di testo per ciascuna voce di elenco specificando lo stile CBS_HASSTRINGS. Caselle combinate con lo stile CBS_SORT sono ordinati in base a questo testo. Se una casella combinata è ordinata e non dello stile CBS_HASSTRINGS, il proprietario deve elaborare il messaggio WM_COMPAREITEM.

In una casella combinata, il proprietario deve tenere traccia di elementi dell'elenco contenente informazioni diverso o in aggiunta al testo. Un modo conveniente per farlo è quello di salvare l'handle per le informazioni di dati dell'elemento. Per ulteriori informazioni sui dati dell'elemento, vedere Dati associati con gli elementi dell'elenco. Per liberare gli oggetti dati associati a elementi in una casella combinata, il proprietario può elaborare il messaggio WM_DELETEITEM.

Per un esempio di una casella combinata, vedere creazione di una casella combinata Owner-Drawn.

Rimedio: Inserire il CD-ROM CD di MSDN Library.

Index