DialogBoxIndirectParam

Funcția DialogBoxIndirectParam creează o casetă de dialog modale dintr-un șablon de caseta de dialog în memorie. Înainte de afișarea casetei de dialog, funcția trece o valoare definită de aplicarea procedurii de caseta de dialog ca parametrul lParam mesaj WM_INITDIALOG . Cererea poate folosi această valoare să inițializeze controalele casetă de dialog.

int () DialogBoxIndirectParam HINSTANCE  hInstance, / / ocupa de instanta applicationLPCDLGTEMPLATEhDialogTemplate,  / / identifică șablonul caseta de dialogHWNDhWndParent, / / ocupa proprietarul fereastraDLGPROClpDialogFunc, / / indicatorul pentru a dialog box proceduraLPARAMdwInitParam / / inițializare valoarea);
 

Parametrii

hInstance
Identifică instanta modulului care creează caseta de dialog.
hDialogTemplate
Cursorul într-un obiect de memorie globală care con?in un șablon care DialogBoxIndirectParam utilizează pentru a crea caseta de dialog. Un șablon de caseta de dialog 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 pentru o casetă de dialog, antetul este o structură DLGTEMPLATE urmat de matrice suplimentare de lungime variabilă. Datele pentru fiecare control dintr-o structură DLGITEMTEMPLATE urmat de matrice de lungime variabilă suplimentare.

Într-un șablon extins pentru o casetă de dialog, antetul utilizează formatul DLGTEMPLATEEX ?i defini?iile control utilizează formatul DLGITEMTEMPLATEEX.

hWndParent
Identifică fereastra care deține caseta de dialog.
lpDialogFunc
Indicatorul la procedura de caseta de dialog. Pentru mai multe informații despre procedura caseta de dialog, consultați DialogProc.
dwInitParam
Specifică valoarea pentru a trece la caseta de dialog în parametrul lParam mesaj WM_INITDIALOG.

Valorile întroarse

Dacă funcția reușește, valoarea returnată este parametrul nResult specificate în apelul la funcția de EndDialog care a fost utilizat pentru a pune capăt caseta de dialog.

Dacă funcția nu reușește, valoarea returnată este –1. Pentru a obține extins informa?ii eroare, apel GetLastError.

Observații

Funcția de DialogBoxIndirectParam utilizează funcția CreateWindowEx pentru a crea caseta de dialog. DialogBoxIndirectParam trimite un mesaj WM_INITDIALOG la procedura de caseta de dialog. Dacă șablonul specifică stilul DS_SETFONT, funcția trimite, de asemenea, un mesaj WM_SETFONT la procedura de caseta de dialog. Funcția afișează caseta de dialog (indiferent dacă șablonul specifică stilul WS_VISIBLE), dezactivează fereastra proprietar, și începe propria bucla de mesaj pentru a prelua și expediere mesaje pentru caseta de dialog.

Când caseta de dialog procedura apelează funcția EndDialog , DialogBoxIndirectParam distruge caseta de dialog, se termină bucla mesaj, permite fereastra proprietarul (dacă activat anterior) și returnează parametrul nResult specificate prin procedura de caseta de dialog atunci când a numit EndDialog.

Într-un șablon de caseta de standard dialog, structura DLGTEMPLATE ?i fiecare dintre structurile DLGITEMTEMPLATE trebuie aliniat la limitele DWORD . Crearea de date array care urmează o structură DLGITEMTEMPLATE trebuie, de asemenea, aliniat la o limită de DWORD . Toate alte matrice lungime variabilă în șablonul trebuie trebuie aliniat la limitele WORD.

Într-un șablon de caseta de dialog extins, antetul DLGTEMPLATEEX și fiecare dintre defini?iile DLGITEMTEMPLATEEX control trebuie aliniat la limitele DWORD . Crearea date matrice, în cazul în care orice, care urmează o structură DLGITEMTEMPLATEEX , de asemenea, trebuie să se alinieze la o limită de DWORD . Toate alte matrice lungime variabilă în șablonul trebuie aliniat la limitele WORD.

Toate șirurile de caractere în șablonul de caseta de dialog, cum ar fi titluri pentru caseta de dialog și butoane, trebuie să fie siruri de caractere Unicode. Pentru a crea cod care funcționează atât pe Windows și Windows NT, funcția MultiByteToWideChar pentru a genera aceste siruri de caractere Unicode.

Windows 95 și mai târziu:Sistemul poate suporta un maximum de 255 controale pe șablon caseta de dialog. Pentru a plasa mai mult de 255 de controalele din caseta de dialog, crea controale în WM_INITDIALOG mesaj mîner, mai degrabă decât introducerea-le în șablonul.

Windows CE: Dacă utilizatorul apasă ALT + H, în timp ce caseta de dialog are focalizarea intrare, sistemul posturi un mesaj WM_HELP pentru regimul de dialog. Cererea trebuie să răspundă la acest mesaj de afișarea ajutorului contextual pentru caseta de dialog.

Pentru alte restricții de dialog, consultați CreateDialogIndirectParam.

QuickInfo

nbsp; Windows &NT: necesită versiunea 3.1 sau mai târziu.
Windows:Necesită Windows 95 sau o versiune ulterioară.
Windows CE:Necesită versiunea 1.0 sau mai târziu.
Antet:A declarat în winuser.h.
Import Biblioteca:Utilizarea user32.lib.
Unicode:Pus în aplicare ca Unicode și ANSI versiuni Windows NT.

A se vedea, de asemenea

Prezentare generală a casete de dialog, funcții caseta de Dialog, CreateWindowEx, DialogBox, DialogBoxIndirect, DialogBoxParam, DialogProc, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, EndDialog, MultiByteToWideChar, WM_INITDIALOG, WM_SETFONT

Index