Când se utilizează o casetă de Dialog

Cele mai multe aplicații utilizați casetele de dialog să solicite informa?ii suplimentare pentru comenzi care necesită intrare de la utilizator. Folosind o casetă de dialog este singura recomandat mod pentru o cerere de a prelua de intrare. De exemplu, comanda Deschidere fișier necesită numele unui fișier pentru a deschide, așa că o cerere ar trebui să utilizați o casetă de dialog pentru a solicita utilizatorului pentru numele. În astfel de cazuri, cererea creează caseta de dialog atunci când utilizatorul alege comanda și distruge caseta de dialog imediat după ce utilizatorul furnizează informațiile.

Multe aplicații, de asemenea, utilizați casetele de dialog pentru a afișa informații sau opțiuni, în timp ce utilizatorul lucrează într-o altă fereastră. De exemplu, cererile de procesare folosesc adesea o casetă de dialog cu o comandă de text de căutare. În timp ce aplicația caută textul, caseta de dialog rămâne pe ecran. Utilizatorul poate apoi reveniți la caseta de dialog și căutare pentru același cuvânt din nou; sau utilizatorul poate modifica intrarea în caseta de dialog și de căutare pentru un cuvânt nou. Cererile că utilizarea casetelor de dialog în acest fel de obicei crea unul atunci când utilizatorul alege o comandă și continua pentru a o afișa pentru cât timp se execută cererea sau până când utilizatorul se închide în mod explicit în caseta de dialog.

Pentru a sprijini moduri diferite aplicații utilizează casetele de dialog, Win32 API oferă două tipuri de caseta de dialog: modal și fără mod. O casetă de modal dialog necesită utilizatorului să furnizeze informa?ii sau pe Revocare în caseta de dialog înainte de a permite aplicarea în continuare. Aplicații utilizează casetele de dialog modale împreună cu comenzile care necesită informa?ii suplimentare, înainte ca acestea să poată continua. O casetă de dialog fără mod permite utilizatorului să furnizeze informații și a reveni la sarcina anterioare fără a închide caseta de dialog. Casetele de dialog modale sunt mai simplu pentru a gestiona decât dialog fără mod casetele pentru că sunt create, î?i îndeplinesc sarcina, și sunt distruse prin apel la o singură funcție.

Pentru a crea fie o casetă de dialog modal sau fără mod, cererea trebuie să furnizeze un șablon de caseta de dialog pentru a descrie stilul de caseta de dialog și conținut; cererea trebuie să furnizeze, de asemenea, o procedură de caseta de dialog pentru a îndeplini sarcinile. Șablon de caseta de dialog este un binar Descriere din caseta de dialog și controalelor conține. Dezvoltatorul poate crea acest șablon ca o resursă pentru a fi încărcat de fișier executabil aplicației sau create în memorie, în timp ce se execută cererea. Procedura de caseta de dialog este o funcție de apel invers definite de aplicare care sistemul necesită atunci când ea are o intrare pentru caseta de dialog sau sarcini pentru caseta de dialog pentru a efectua. Deși o procedură de caseta de dialog este similar cu o procedură de fereastra, nu are aceleași responsabilități.

O cerere de obicei creează o casetă de dialog utilizând funcția fie DialogBox sau CreateDialog . DialogBox creează o casetă de dialog modale; CreateDialog creează o casetă de dialog fără mod. Aceste două funcții încărca un șablon de caseta de dialog de fișier executabil aplicației și de a crea o fereastră pop-up care corespunde specifica?iilor șablonului. Există alte funcții care creează o casetă de dialog utilizând șabloane în memorie; trec informații suplimentare la procedura de caseta de dialog, caseta de dialog este creat.

Casetele de dialog apar?in de obicei o fereastra predefinite, exclusiv clasă. Sistemul utilizează această clasă de Ferestre și său corespunzătoare fereastra procedură pentru ambele casete de dialog modal și fără mod. Atunci când funcția este numită, acesta creează fereastra pentru caseta de dialog, precum windows pentru controalele din caseta de dialog, apoi trimite mesajele selectate la procedura de caseta de dialog. În timp ce caseta de dialog este vizibil, procedura fereastra predefinite gestionează toate mesajele, unele mesaje de prelucrare ?i altele trecerea de la regimul de caseta de dialog astfel încât procedura poate îndeplini sarcinile. Cererile nu au acces direct la clasa fereastra predefinite sau fereastra procedura, dar acestea pot utiliza șablon caseta de dialog și procedura de caseta de dialog pentru a modifica stilul și comportamentul o casetă de dialog.

Index