Selecția curentă

Selecția curentă este un element din listă a selectat utilizatorul; textul selectat apare în câmpul selecție din caseta combo. Cu toate acestea, în caz de o casetă combo simplu sau un drop jos casetă combo, selecția curentă este doar o formă de intrare de la utilizator posibilă într-o casetă combo. Utilizatorul poate, de asemenea, tastați text în câmpul de selecție.

Selecția curentă este identificat prin indicele zero-based elementul listei selectate. O cerere puteți seta și a prelua în orice moment. O mamă fereastra dialog caseta de procedură sau primește notificările atunci când utilizatorul modifică selecția curentă pentru o casetă combo. Mamă fereastra sau casetă de dialog nu este notificat atunci când cererea se modifică selecția.

Când se creează o casetă combo, nu există nici o selecția curentă. Acest lucru este valabil și pentru o casetă combo simplu sau drop-down, dacă utilizatorul a editat conținutul câmpului selecție. Pentru a seta selecția curentă, o cerere de a trimite mesajul CB_SETCURSEL caseta combo. Cererea poate utiliza, de asemenea, mesajul CB_SELECTSTRING pentru a seta selecția curentă la un articol de listă al cărui șir începe cu un șir de caractere specificat. Pentru a determina selecția curentă, o cerere de a trimite mesajul CB_GETCURSEL caseta combo. Dacă nu există nici o selecția curentă, acest mesaj întoarce CB_ERR.

Atunci când utilizatorul modifică selecția curentă într-o casetă combo, mamă fereastra sau caseta de dialog procedura primește un mesaj de WM_COMMAND cu un mesaj de notificare CBN_SELCHANGE în cuvântul de înaltă-ordine de parametrul wParam . Acest mesaj de notificare nu este trimis la selecția curentă printr-un mesaj de CB_SETCURSEL.

O casetă verticală combo sau listă verticală trimite notificarea de CBN_CLOSEUP la procedura mamă fereastra sau caseta de dialog atunci când se închide lista drop-down. Dacă utilizatorul modifică selecția curentă, caseta combo trimite, de asemenea, notificarea de CBN_SELCHANGE când se închide lista drop-down. Pentru a executa un proces specifice de fiecare dată când utilizatorul selectează un element din listă, se pot ocupa de CBN_SELCHANGE sau CBN_CLOSEUP mesajul de notificare. De obicei, ar așteptați pentru notificarea CBN_CLOSEUP înainte de prelucrare o schimbare în selecția curentă. Acest lucru poate fi deosebit de important dacă este necesară o cantitate semnificativă de prelucrare.

O cerere ar putea, de asemenea, procesul de mesajele de notificare CBN_SELENDOK și CBN_SELENDCANCEL. Sistemul trimite CBN_SELENDOK atunci când utilizatorul selectează un element din listă, sau selectează un element și apoi închide lista. Acest lucru indică utilizatorul a terminat, și alegerea ar trebui să fie prelucrate. CBN_SELENDCANCEL este trimis atunci când utilizatorul selectează un element, dar apoi selectează un alt control, apasă tasta escape în timp ce drop-jos listă este deschis, sau se închide caseta de dialog. Acest lucru indică utilizatorului selecție ar trebui să fie ignorate. Într-o casetă combo simplu, CBN_SELENDOK este trimisă înainte de fiecare mesaj CBN_SELCHANGE. Dacă stilul WS_EX_NOPARENTNOTIFY fereastra este specificat pentru caseta combo, sistemul nu trimite mesaje CBN_SELENDOK și CBN_SELENDCANCEL.

Într-o casetă combo simplu, sistemul CBN_DBLCLK notificarea mesaj se trimite atunci când utilizatorul face dublu clic pe un element din listă. Într-o caseta verticală combo sau listă verticală, un singur clic ascunde lista astfel încât nu este posibil să faceți dublu clic pe un element.