Controale particularizate

Cererile pot crea controale particularizate pentru a efectua activități nu sunt acceptate de controale predefinite. Win32 API oferă următoarele moduri pentru a crea personalizate controale:

Cu ajutorul comenzilor proprietarul-trase

Butoanele, casetele listă, și casetelor combo au proprietarul-trase stiluri disponibile direct de control pentru a trimite un mesaj la fereastra de mamă ori de câte ori trebuie să se întocmească controlul. Această caracteristică permite o cerere pentru a modifica aspectul unui control. Pentru butoane, stilul proprietarul-trase afectează modul sistemul atrage întreaga controlul. Pentru casetele listă, și casetelor combo, fereastra părinte atrage elementele în controlul, și controlul atrage conturul proprii. De exemplu, o cerere particulariza o casetă listă astfel încât să afișeze un bitmap mic lângă pentru fiecare element din lista de.

Cererea poate desemna casete listă, casete combo, și butoane ca proprietarul-trase controale prin crearea-le cu stilul corespunzătoare. Atunci când un control are stilul-trase de proprietar, sistemul mânere interacțiunea utilizatorului cu comanda ca de obicei, efectuarea acestor sarcini ca detectează atunci când un utilizator a ales un buton și notificarea butonul proprietar al evenimentului. Cu toate acestea, deoarece controlul este proprietarul trase, fereastra părinte de control este responsabil pentru aspectul controlului. Pentru mai multe informații despre proprietarul-trase controale, consultați proprietarul-trase butoanele, casetele listă proprietarul-traseși casete combo - trase de proprietar.

Subclassing clasa fereastra unui control existent

Subclassing unui control existent este un alt mod de a crea un control particularizat. Procedura subclasă puteți modifica comportamente selectată de controlul de prelucrare acele mesaje care afectează comportamente selectate. Toate alte mesaje trece la regimul fereastra original de control. De exemplu, o cerere poate afișa bitmap mic lângă la textul într-un control doar-în-citire, singur-linie Editare subclassing controlul și prelucrare WM_PAINT mesajul. Pentru mai multe informații, consultați Fereastra procedură Subclassing.

Cu toate că cererea poate subclasă un control predefinite, se bazează pe fereastra procedura de control pentru a oferi toate alte aspecte ale comportamentului controlului. Pentru mai multe informații despre comportamentul unui control, consultați subiectul individuale pentru controale predefinite.

O clasă de fereastra aplicare-definită de punere în aplicare

Procesul de înregistrare a unei clase de fereastra aplicare-definită pentru un control particularizat este același ca și pentru înregistrarea o clasă pentru o fereastră ordinare. Pentru a crea un control particularizat, care specifică numele clasei fereastra în funcția CreateWindowEx sau într-un șablon de caseta de dialog. Fiecare clasa trebuie să aibă un nume unic, o procedură corespunzătoare de fereastră și alte informații.

Cel puțin, procedura fereastra atrage controlul. Dacă o cerere utilizează controlul să informații de tip utilizator, procedura fereastra, de asemenea, procesează mesajele de intrare de la tastatură și mouse-ul și a trimite mesajele de notificare în fereastra părinte. În plus, dacă controlul acceptă mesaje de control, procedura fereastra procesează mesajele trimise de fereastra părinte sau alte windows. De exemplu, controale procesul de multe ori mesaj WM_GETDLGCODE trimise de casete de dialog direct o casetă de dialog pentru procesul de input tastatură într-un anumit mod.

Index