DialogBoxIndirect

Macrocomanda DialogBoxIndirect creează o casetă de dialog modale dintr-un șablon de caseta de dialog în memorie. DialogBoxIndirect nu se întoarce controlul până la funcția de apel invers specificate încetează din caseta de dialog modale sunând la funcția de EndDialog . Macrocomanda DialogBoxIndirect utilizează funcția DialogBoxIndirectParam.

int () DialogBoxIndirect HINSTANCE  hInstance, / / ocupa de instanta applicationLPDLGTEMPLATElpTemplate, / / identifică șablonul caseta de dialogHWNDhWndParent, / / ocupa proprietarul fereastraDLGPROClpDialogFunc / / indicatorul pentru a dialog box procedura);
 

Parametrii

hInstance
Identifică instanta modulului care creează caseta de dialog.
lpTemplate
Cursorul într-un obiect de memorie globală care con?in un șablon care DialogBoxIndirect 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.

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

Macrocomanda DialogBoxIndirect utilizează funcția CreateWindowEx pentru a crea caseta de dialog. DialogBoxIndirect 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 , DialogBoxIndirect 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: Nu toate stilurile sunt acceptate în structura DLGTEMPLATE în șablonul de dialog prevăzute de parametrul lpTemplate .

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, DialogBoxIndirectParam, DialogBoxParam, DialogProc, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, EndDialog, MultiByteToWideChar, WM_INITDIALOG, WM_SETFONT

Index