CreateDialogIndirectParam

Funcția CreateDialogIndirectParam creează o casetă de dialog fără mod 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.

(HWND CreateDialogIndirectParam HINSTANCE  hInstance, / / ocupa de instanta applicationLPCDLGTEMPLATElpTemplate, / / indicatorul pentru a dialog box șablonHWNDhWndParent, / / ocupa proprietarul fereastraDLGPROClpDialogFunc, / / indicatorul pentru a dialog box proceduraLPARAMlParamInit / / inițializare valoarea);
 

Parametrii

hInstance
Identifică instanța de modulul care va crea caseta de dialog.
lpTemplate
Cursorul într-un obiect de memorie globală care con?in un șablon care CreateDialogIndirectParam 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 CreateDialogIndirectParam 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.
lParamInit
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 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

Funcția de CreateDialogIndirectParam utilizează funcția CreateWindowEx pentru a crea caseta de dialog. CreateDialogIndirectParam 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ă, CreateDialogIndirectParam se întoarce ghidajul fereastra în caseta de dialog.

După întoarcerea în CreateDialogIndirectParam , 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: Casetele de dialog în afara zonei vizibile a ecranului nu sunt repoziționate automat.

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.

Următoarele stiluri nu sunt acceptate pentru membru stil structura DLGTEMPLATE :

Pentru a obține poziționării implicite, utilizați stilul DS_CENTER.

Dacă stilul WS_CHILD nu este specificat, se presupune că stilul WS_POPUP.

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

Index