Proprietarul-trase casete Combo

Cererea poate crea un proprietar-trase casetă combo să își asume responsabilitatea pentru pictura elementele listei. Mamă fereastra sau casetă de dialog de o casetă combo-trase de proprietarul ( owner) primește mesaje WM_DRAWITEM atunci când o parte a casetei combo trebuie să fi pictate. O casetă combo-trase de proprietar poate lista informații altele decât sau în plus, șiruri de text. Casete combo-trase de proprietar poate fi de orice tip. Cu toate acestea, controlul Editare într-o casetă combo simplu sau drop-jos pot afișa text, numai în timp ce proprietarul vopsele câmpul selecție într-o casetă listă verticală.

Proprietarul o casetă combo-trase de proprietar trebuie să prelucreze mesaj WM_DRAWITEM. Acest mesaj este trimis ori de câte ori trebuie să fie rescris o parte a casetei combo. Proprietarul poate fi necesar pentru a prelucra alte mesaje, în funcție de stilurile specificate pentru caseta combo.

Cererea poate crea o casetă combo-trase de proprietar specificând stilul CBS_OWNERDRAWFIXED sau CBS_OWNERDRAWVARIABLE. Dacă toate elementele de listă în caseta combo sunt aceeași înălțime, cum ar fi siruri de caractere sau pictograme, cererea poate utiliza stilul CBS_OWNERDRAWFIXED. Dacă elementele de listă sunt de înăl?ime diferite, bitmap-uri de dimensiuni diferite, de exemplu, o cerere utilizați stilul CBS_OWNERDRAWVARIABLE.

Proprietarul o casetă combo-trase de proprietar poate procesa un mesaj WM_MEASUREITEM pentru a specifica dimensiunile din lista de elemente în caseta combo. Dacă aplicarea creează caseta combo utilizând stilul CBS_OWNERDRAWFIXED, sistemul trimite mesajul WM_MEASUREITEM o singură dată. Dimensiunile specificate de proprietar sunt utilizate pentru toate elementele de listă. Dacă stilul CBS_OWNERDRAWVARIABLE este utilizat, sistemul trimite un mesaj WM_MEASUREITEM pentru fiecare element din listă adaugă caseta combo. Proprietarul poate determina sau seta înălțimea de un element din listă în orice moment utilizând mesaje CB_GETITEMHEIGHT ?i CB_SETITEMHEIGHT , respectiv.

Dacă informațiile afișate într-o casetă combo-trase de proprietar include text, cererea poate urmări de text pentru fiecare element din listă specificând stilul CBS_HASSTRINGS. Casete combinate cu stilul CBS_SORT sunt sortate bazate pe acest text. Dacă o casetă combo este sortate și nu de stilul CBS_HASSTRINGS, proprietarul trebuie să prelucreze mesaj WM_COMPAREITEM.

Într-o casetă combo-trase de proprietar, proprietarul trebuie să monitorizați de listă elemente care con?in informa?ii altele decât sau în plus față de text. Un mod convenabil de a face acest lucru este de a salva ghidajul de informa?ii ca element de date. Pentru mai multe informații despre elementul de date, consultați Date asociate cu elementele listei. Pentru a elibera obiectele de date asociate cu elemente într-o casetă combo, proprietar poate procesa mesaj WM_DELETEITEM.

Pentru un exemplu de o casetă combo-trase de proprietar, consultați crearea o casetă Combo Owner-Drawn.

Index