CreateDialogIndirect

Macrocomanda CreateDialogIndirect creează o casetă de dialog fără mod dintr-un șablon de caseta de dialog în memorie. Macrocomanda CreateDialogIndirect utilizează funcția CreateDialogIndirectParam.

(HWND CreateDialogIndirect HINSTANCE  hInstance, / / ocupa de instanta applicationLPCDLGTEMPLATElpTemplate, / / indicatorul pentru a dialog box șablonHWNDhWndParent, / / 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 CreateDialogIndirect 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, 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 de caseta de dialog extins, antetul utilizează formatul DLGTEMPLATEEX ?i defini?iile control utilizează formatul DLGITEMTEMPLATEEX.

După ce CreateDialogIndirect se întoarce, puteți liber șablonul, care este folosit doar pentru a obține caseta de dialog a început.

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 ghidajul ferestrei pentru a caseta de dialog.

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

Observații

Macrocomanda CreateDialogIndirect utilizează funcția CreateWindowEx pentru a crea caseta de dialog. CreateDialogIndirect 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 dacă șablonul specifică stilul WS_VISIBLE. În cele din urmă, CreateDialogIndirect se întoarce ghidajul fereastra în caseta de dialog.

După întoarcerea în CreateDialogIndirect , utilizați funcția ShowWindow pentru a afișa caseta de dialog (dacă nu este deja vizibil). Pentru a distruge caseta de dialog, utilizați funcția DestroyWindow.

Î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, CreateDialog, CreateDialogIndirectParam, CreateDialogParam, CreateWindowEx, DestroyWindow, DialogProc, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, , MultiByteToWideChar, ShowWindow, WM_INITDIALOG, WM_SETFONT

Index