Un șablon de caseta de dialog în memorie constă dintr-un antet care descrie caseta de dialog, urmat de unul sau mai multe blocuri suplimentare de date care descrie fiecare dintre controalele din caseta de dialog. Șablonul poate utiliza formatul standard sau formatul extins. Într-un șablon standard, antetul este o structură DLGTEMPLATE urmat de matrice suplimentare de lungime variabilă. Datele pentru fiecare control dintr-o structură DLGITEMTEMPLATE urmat de matrice suplimentare de lungime variabilă. Într-un șablon de caseta de dialog extins, antetul utilizează formatul DLGTEMPLATEEX ?i defini?iile control utilizează formatul DLGITEMTEMPLATEEX.
Pentru a deosebi un șablon standard un șablon extins, a verifica prima 16-biți de șablon de caseta de dialog. Într-un șablon extinse, primul cuvânt este 0xFFFF; orice altă valoare indică un șablon standard.
Dacă creați un șablon de dialog în memorie, tu trebuie să asigure fiecare din controlul DLGITEMTEMPLATE sau DLGITEMTEMPLATEEX defini?ii sunt aliniate pe limitele DWORD . În plus, orice date de creare care urmează o definiție de control trebuie aliniat la o limită de DWORD . Toate alte matrice lungime variabilă într-un șablon de caseta de dialog trebuie aliniat la limitele WORD.
Antetul șablon
În ambele standard și extins șabloane pentru casete de dialog, antetul include următoarele informa?ii generale:
Localizarea ?i dimensiunile din caseta de dialog
Fereastra și dialog box stiluri pentru caseta de dialog
Numărul de controale în caseta de dialog. Această valoare determină numărul de DLGITEMTEMPLATE sau DLGITEMTEMPLATEEX control definiții din șablon.
O resursă meniul opțional pentru caseta de dialog. Șablonul poate indica faptul că în caseta de dialog nu are un meniu, sau se poate specifica o valoarea ordinală sau șir null-terminated Unicode care identifică o resursă meniul într-un fișier executabil.
Clasa fereastră din caseta de dialog. Acest lucru poate fi clasa de caseta de dialog predefinite, sau o valoarea ordinală sau o șir null-terminated Unicode care identifică o clasă fereastra înregistrate.
Un șir null-terminated Unicode care specifică titlul pentru fereastra de caseta de dialog. Dacă șirul este gol, bara de titlu a casetei de dialog este necompletat. În cazul în care caseta de dialog nu este stilul WS_CAPTION, sistemul stabilește titlul la șirul specificat, dar nu afișa.
În cazul în care caseta de dialog are stilul DS_SETFONT, Antet specifică punctul dimensiunea și caractere numele fontului pentru a utiliza textul în zona de client și controalele din caseta de dialog.
Într-un șablon extinse, antetul DLGTEMPLATEEX specifică, de asemenea, următoarele informa?ii suplimentare:
Identificatorul de context ajutor care identifică fereastra de caseta de dialog atunci când sistemul trimite un WM_HELP mesaj.
În cazul în care caseta de dialog are stilul DS_SETFONT, Antet specifică greutatea de font și indică dacă fontul este cursiv.
Defini?iile Control
După antetul șablon este una sau mai multe definiții de control care descrie controalele din caseta de dialog. În ambele standard și extins șabloane antetul de caseta de dialog are un membru care indică numărul de control definiții din șablon. Într-un șablon standard, definiția fiecare control dintr-o structură DLGITEMTEMPLATE urmat de matrice suplimentare de lungime variabilă. Într-un șablon extinse, defini?iile control utilizează formatul DLGITEMTEMPLATEEX.
În ambele standard și extins șabloane definiția de control include următoarele informa?ii:
Localizarea ?i dimensiunile de control.
Stilurile fereastră și control de control.
Identificatorul de control.
Clasa fereastra de control. Acest lucru poate fi fie valoarea ordinală dintr-o clasă de sistem predefinite sau un șir null-terminated Unicode care specifică numele dintr-o clasă de fereastra înregistrate.
Un șir null-terminated Unicode care precizează textul inițial de control, sau o valoare ordinal care identifică o resursă, cum ar fi o pictogramă, într-un fișier executabil.
Un bloc de lungime variabilă opțional, a datelor de creare. Când sistemul creează controlul, trece un pointer la aceste date în parametrul lParamWM_CREATE mesajului care trimite comanda.
Într-un șablon extinse, definiția de control, de asemenea, identificatorul un ajutor context care identifică controlul când sistemul trimite un WM_HELP mesaj.